109 lines
4.1 KiB
Java
109 lines
4.1 KiB
Java
package com.bumptech.glide.load.model;
|
|
|
|
import android.content.ContentResolver;
|
|
import android.content.res.AssetFileDescriptor;
|
|
import android.net.Uri;
|
|
import android.os.ParcelFileDescriptor;
|
|
import com.bumptech.glide.load.Options;
|
|
import com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher;
|
|
import com.bumptech.glide.load.data.DataFetcher;
|
|
import com.bumptech.glide.load.data.FileDescriptorLocalUriFetcher;
|
|
import com.bumptech.glide.load.data.StreamLocalUriFetcher;
|
|
import com.bumptech.glide.load.model.ModelLoader;
|
|
import com.bumptech.glide.signature.ObjectKey;
|
|
import java.io.InputStream;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class UriLoader<Data> implements ModelLoader<Uri, Data> {
|
|
private static final Set<String> b = Collections.unmodifiableSet(new HashSet(Arrays.asList("file", "android.resource", "content")));
|
|
private final LocalUriFetcherFactory<Data> a;
|
|
|
|
public static final class AssetFileDescriptorFactory implements ModelLoaderFactory<Uri, AssetFileDescriptor>, LocalUriFetcherFactory<AssetFileDescriptor> {
|
|
private final ContentResolver a;
|
|
|
|
public AssetFileDescriptorFactory(ContentResolver contentResolver) {
|
|
this.a = contentResolver;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public ModelLoader<Uri, AssetFileDescriptor> a(MultiModelLoaderFactory multiModelLoaderFactory) {
|
|
return new UriLoader(this);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public void a() {
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.UriLoader.LocalUriFetcherFactory
|
|
public DataFetcher<AssetFileDescriptor> a(Uri uri) {
|
|
return new AssetFileDescriptorLocalUriFetcher(this.a, uri);
|
|
}
|
|
}
|
|
|
|
public static class FileDescriptorFactory implements ModelLoaderFactory<Uri, ParcelFileDescriptor>, LocalUriFetcherFactory<ParcelFileDescriptor> {
|
|
private final ContentResolver a;
|
|
|
|
public FileDescriptorFactory(ContentResolver contentResolver) {
|
|
this.a = contentResolver;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.UriLoader.LocalUriFetcherFactory
|
|
public DataFetcher<ParcelFileDescriptor> a(Uri uri) {
|
|
return new FileDescriptorLocalUriFetcher(this.a, uri);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public void a() {
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public ModelLoader<Uri, ParcelFileDescriptor> a(MultiModelLoaderFactory multiModelLoaderFactory) {
|
|
return new UriLoader(this);
|
|
}
|
|
}
|
|
|
|
public interface LocalUriFetcherFactory<Data> {
|
|
DataFetcher<Data> a(Uri uri);
|
|
}
|
|
|
|
public static class StreamFactory implements ModelLoaderFactory<Uri, InputStream>, LocalUriFetcherFactory<InputStream> {
|
|
private final ContentResolver a;
|
|
|
|
public StreamFactory(ContentResolver contentResolver) {
|
|
this.a = contentResolver;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.UriLoader.LocalUriFetcherFactory
|
|
public DataFetcher<InputStream> a(Uri uri) {
|
|
return new StreamLocalUriFetcher(this.a, uri);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public void a() {
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public ModelLoader<Uri, InputStream> a(MultiModelLoaderFactory multiModelLoaderFactory) {
|
|
return new UriLoader(this);
|
|
}
|
|
}
|
|
|
|
public UriLoader(LocalUriFetcherFactory<Data> localUriFetcherFactory) {
|
|
this.a = localUriFetcherFactory;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoader
|
|
public ModelLoader.LoadData<Data> a(Uri uri, int i, int i2, Options options) {
|
|
return new ModelLoader.LoadData<>(new ObjectKey(uri), this.a.a(uri));
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoader
|
|
public boolean a(Uri uri) {
|
|
return b.contains(uri.getScheme());
|
|
}
|
|
}
|