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