19fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddpackage com.bumptech.glide.load.model; 2f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd 3f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport android.net.Uri; 4bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Juddimport com.bumptech.glide.load.data.DataFetcher; 5f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd 6f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Juddimport java.io.File; 7f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd 8f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd/** 9f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd * A model loader for handling certain string models. Handles paths, urls, and any uri string with a scheme handled by 10fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd * {@link android.content.ContentResolver#openInputStream(Uri)}. 11f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd */ 12fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddpublic class StringLoader<T> implements ModelLoader<String, T> { 13fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd private final ModelLoader<Uri, T> uriLoader; 149c04fc7a0c1d5c9e8f54660b0f954f754100f250Sam Judd 15fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd public StringLoader(ModelLoader<Uri, T> uriLoader) { 16b4f36c0e55facbe749e12501a920fde0316d74d2Sam Judd this.uriLoader = uriLoader; 17f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd } 18f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd 19f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd @Override 20bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Judd public DataFetcher<T> getResourceFetcher(String model, int width, int height) { 21b4f36c0e55facbe749e12501a920fde0316d74d2Sam Judd Uri uri = Uri.parse(model); 22b4f36c0e55facbe749e12501a920fde0316d74d2Sam Judd 23b4f36c0e55facbe749e12501a920fde0316d74d2Sam Judd final String scheme = uri.getScheme(); 24b4f36c0e55facbe749e12501a920fde0316d74d2Sam Judd if (scheme == null) { 251361bbeef0d664e4613787346a3bd1d442fc9f4bSam Judd uri = Uri.fromFile(new File(model)); 261361bbeef0d664e4613787346a3bd1d442fc9f4bSam Judd } 270ae32dc10d668a04f9f0484d587aefe5a7210e1cSam Judd return uriLoader.getResourceFetcher(uri, width, height); 28f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd } 29f4e3c7600c1698912a1a374c172e4dd9c40c2edeSam Judd} 30