StringLoader.java revision f4e3c7600c1698912a1a374c172e4dd9c40c2ede
1f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddpackage com.bumptech.glide.loader.model;
2f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
3f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport android.content.Context;
4f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport android.net.Uri;
5f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport com.android.volley.RequestQueue;
6f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport com.bumptech.glide.loader.stream.FileStreamLoader;
7f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport com.bumptech.glide.loader.stream.StreamLoader;
8f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport com.bumptech.glide.util.Log;
9f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
10f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport java.io.File;
11f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
12f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd/**
13f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd * A model loader for handling certain string models. Handles paths, urls, and any uri string with a scheme handled by
14f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd * {@link android.content.ContentResolver#openInputStream(android.net.Uri)}.
15f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd */
16f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddpublic class StringLoader extends BaseModelLoader<String> {
17f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
18f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    private final UriLoader uriLoader;
19f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
20f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    public StringLoader(Context context, RequestQueue requestQueue) {
21f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        uriLoader = new UriLoader(context, requestQueue);
22f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    }
23f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
24f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    @Override
25f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    protected StreamLoader buildStreamOpener(String model, int width, int height) {
26f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        final File file = new File(model);
27f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        if (file.exists() && !file.isDirectory()) {
28f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd            Log.d("TEST: string loader have file exists and not dir");
29f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd            return new FileStreamLoader(model);
30f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        } else {
31f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd            final Uri uri = Uri.parse(model);
32f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd            Log.d("TEST: string loader parsed uri to: " + uri);
33f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd            return uriLoader.buildStreamOpener(uri, width, height);
34f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        }
35f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    }
36f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd
37f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    @Override
38f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    public String getId(String model) {
39f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd        return model;
40f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd    }
41f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd}
42