@Override
    public final DataFetcher<T> getResourceFetcher(Uri model, int width, int height) {
        final String scheme = model.getScheme();

        DataFetcher<T> result = null;
        if (isLocalUri(scheme)) {
            if (AssetUriParser.isAssetUri(model)) {
                String path = AssetUriParser.toAssetPath(model);
                result = getAssetPathFetcher(context, path);
            } else {
                result = getLocalUriFetcher(context, model);
            }
        } else if (urlLoader != null && ("http".equals(scheme) || "https".equals(scheme))) {
            result = urlLoader.getResourceFetcher(new GlideUrl(model.toString()), width, height);
        }

        return result;
    }
A base ModelLoader for {@link Uri}s that handles local {@link Uri}s directly and routes
remote {@link Uri}s to a wrapped {@link ModelLoader} that handles
{@link GlideUrl}s.

@param <T> The type of data that will be retrieved for {@link Uri}s.
core/src/main/java/com/bumptech/glide/load/model/UriLoader.java