1package com.bumptech.glide.load.model.stream;
2
3import android.content.Context;
4import android.net.Uri;
5
6import com.bumptech.glide.Glide;
7import com.bumptech.glide.load.model.GenericLoaderFactory;
8import com.bumptech.glide.load.model.ModelLoader;
9import com.bumptech.glide.load.model.ModelLoaderFactory;
10import com.bumptech.glide.load.model.ResourceLoader;
11
12import java.io.InputStream;
13
14/**
15 * A {@link ModelLoader} For translating android resource id models for local uris into {@link InputStream} data.
16 */
17public class StreamResourceLoader extends ResourceLoader<InputStream> implements StreamModelLoader<Integer> {
18
19    /**
20     * The default factory for {@link com.bumptech.glide.load.model.stream.StreamResourceLoader}s.
21     */
22    public static class Factory implements ModelLoaderFactory<Integer, InputStream> {
23
24        @Override
25        public ModelLoader<Integer, InputStream> build(Context context, GenericLoaderFactory factories) {
26            return new StreamResourceLoader(context, factories.buildModelLoader(Uri.class, InputStream.class));
27        }
28
29        @Override
30        public void teardown() {
31            // Do nothing.
32        }
33    }
34
35    public StreamResourceLoader(Context context) {
36        this(context, Glide.buildStreamModelLoader(Uri.class, context));
37    }
38
39    public StreamResourceLoader(Context context, ModelLoader<Uri, InputStream> uriLoader) {
40        super(context, uriLoader);
41    }
42}
43