blob: af27bc60913c547c440e924b2bc89311d350989b [file] [log] [blame]
package com.bumptech.glide.load.resource.bitmap;
import android.graphics.Bitmap;
import android.os.ParcelFileDescriptor;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.Encoder;
import com.bumptech.glide.load.ResourceDecoder;
import com.bumptech.glide.load.ResourceEncoder;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.NullEncoder;
import com.bumptech.glide.load.resource.file.FileToStreamDecoder;
import com.bumptech.glide.provider.DataLoadProvider;
import java.io.File;
/**
* An {@link com.bumptech.glide.provider.DataLoadProvider} that provides classes for decoding and encoding
* {@link android.graphics.Bitmap}s from {@link android.os.ParcelFileDescriptor} data.
*/
public class FileDescriptorBitmapDataLoadProvider implements DataLoadProvider<ParcelFileDescriptor, Bitmap> {
private final ResourceDecoder<File, Bitmap> cacheDecoder;
private final FileDescriptorBitmapDecoder sourceDecoder;
private final BitmapEncoder encoder;
private final Encoder<ParcelFileDescriptor> sourceEncoder;
public FileDescriptorBitmapDataLoadProvider(BitmapPool bitmapPool, DecodeFormat decodeFormat) {
cacheDecoder = new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(bitmapPool, decodeFormat));
sourceDecoder = new FileDescriptorBitmapDecoder(bitmapPool, decodeFormat);
encoder = new BitmapEncoder();
sourceEncoder = NullEncoder.get();
}
@Override
public ResourceDecoder<File, Bitmap> getCacheDecoder() {
return cacheDecoder;
}
@Override
public ResourceDecoder<ParcelFileDescriptor, Bitmap> getSourceDecoder() {
return sourceDecoder;
}
@Override
public Encoder<ParcelFileDescriptor> getSourceEncoder() {
return sourceEncoder;
}
@Override
public ResourceEncoder<Bitmap> getEncoder() {
return encoder;
}
}