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