StringLoader.java revision b4f36c0e55facbe749e12501a920fde0316d74d2
1package com.bumptech.glide.loader.model;
2
3import android.net.Uri;
4import com.bumptech.glide.loader.stream.StreamLoader;
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(android.net.Uri)}.
11 */
12public class StringLoader extends BaseModelLoader<String> {
13
14    private final ModelLoader<Uri> uriLoader;
15
16    public StringLoader(ModelLoader<Uri> uriLoader) {
17        this.uriLoader = uriLoader;
18    }
19
20    @Override
21    protected StreamLoader buildStreamOpener(final String model, final int width, final int height) {
22        Uri uri = Uri.parse(model);
23
24        final String scheme = uri.getScheme();
25        if (scheme == null) {
26            uri = Uri.fromFile(new File(model));
27        }
28
29        return uriLoader.getStreamOpener(uri, width, height);
30    }
31
32    @Override
33    public String getId(String model) {
34        return model;
35    }
36}
37