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