153 lines
5.4 KiB
Java
153 lines
5.4 KiB
Java
package com.bumptech.glide.load.model;
|
|
|
|
import android.os.ParcelFileDescriptor;
|
|
import android.util.Log;
|
|
import com.bumptech.glide.Priority;
|
|
import com.bumptech.glide.load.DataSource;
|
|
import com.bumptech.glide.load.Options;
|
|
import com.bumptech.glide.load.data.DataFetcher;
|
|
import com.bumptech.glide.load.model.ModelLoader;
|
|
import com.bumptech.glide.signature.ObjectKey;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class FileLoader<Data> implements ModelLoader<File, Data> {
|
|
private final FileOpener<Data> a;
|
|
|
|
public static class Factory<Data> implements ModelLoaderFactory<File, Data> {
|
|
private final FileOpener<Data> a;
|
|
|
|
public Factory(FileOpener<Data> fileOpener) {
|
|
this.a = fileOpener;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public final ModelLoader<File, Data> a(MultiModelLoaderFactory multiModelLoaderFactory) {
|
|
return new FileLoader(this.a);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoaderFactory
|
|
public final void a() {
|
|
}
|
|
}
|
|
|
|
public static class FileDescriptorFactory extends Factory<ParcelFileDescriptor> {
|
|
public FileDescriptorFactory() {
|
|
super(new FileOpener<ParcelFileDescriptor>() { // from class: com.bumptech.glide.load.model.FileLoader.FileDescriptorFactory.1
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public ParcelFileDescriptor a(File file) throws FileNotFoundException {
|
|
return ParcelFileDescriptor.open(file, 268435456);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public void a(ParcelFileDescriptor parcelFileDescriptor) throws IOException {
|
|
parcelFileDescriptor.close();
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public Class<ParcelFileDescriptor> a() {
|
|
return ParcelFileDescriptor.class;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public interface FileOpener<Data> {
|
|
Class<Data> a();
|
|
|
|
Data a(File file) throws FileNotFoundException;
|
|
|
|
void a(Data data) throws IOException;
|
|
}
|
|
|
|
public static class StreamFactory extends Factory<InputStream> {
|
|
public StreamFactory() {
|
|
super(new FileOpener<InputStream>() { // from class: com.bumptech.glide.load.model.FileLoader.StreamFactory.1
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public InputStream a(File file) throws FileNotFoundException {
|
|
return new FileInputStream(file);
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public void a(InputStream inputStream) throws IOException {
|
|
inputStream.close();
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.FileLoader.FileOpener
|
|
public Class<InputStream> a() {
|
|
return InputStream.class;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public FileLoader(FileOpener<Data> fileOpener) {
|
|
this.a = fileOpener;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoader
|
|
public boolean a(File file) {
|
|
return true;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.model.ModelLoader
|
|
public ModelLoader.LoadData<Data> a(File file, int i, int i2, Options options) {
|
|
return new ModelLoader.LoadData<>(new ObjectKey(file), new FileFetcher(file, this.a));
|
|
}
|
|
|
|
private static final class FileFetcher<Data> implements DataFetcher<Data> {
|
|
private final File a;
|
|
private final FileOpener<Data> b;
|
|
private Data c;
|
|
|
|
FileFetcher(File file, FileOpener<Data> fileOpener) {
|
|
this.a = file;
|
|
this.b = fileOpener;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.data.DataFetcher
|
|
public void a(Priority priority, DataFetcher.DataCallback<? super Data> dataCallback) {
|
|
try {
|
|
this.c = this.b.a(this.a);
|
|
dataCallback.a((DataFetcher.DataCallback<? super Data>) this.c);
|
|
} catch (FileNotFoundException e) {
|
|
if (Log.isLoggable("FileLoader", 3)) {
|
|
Log.d("FileLoader", "Failed to open file", e);
|
|
}
|
|
dataCallback.a((Exception) e);
|
|
}
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.data.DataFetcher
|
|
public void b() {
|
|
Data data = this.c;
|
|
if (data != null) {
|
|
try {
|
|
this.b.a((FileOpener<Data>) data);
|
|
} catch (IOException unused) {
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.data.DataFetcher
|
|
public void cancel() {
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.data.DataFetcher
|
|
public DataSource getDataSource() {
|
|
return DataSource.LOCAL;
|
|
}
|
|
|
|
@Override // com.bumptech.glide.load.data.DataFetcher
|
|
public Class<Data> a() {
|
|
return this.b.a();
|
|
}
|
|
}
|
|
}
|