1bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Juddpackage com.bumptech.glide.load.resource.bitmap;
2c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
3c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Juddimport android.graphics.Bitmap;
4c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Juddimport android.os.ParcelFileDescriptor;
59fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddimport com.bumptech.glide.DataLoadProvider;
6cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport com.bumptech.glide.load.Encoder;
79fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddimport com.bumptech.glide.load.ResourceDecoder;
89fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddimport com.bumptech.glide.load.ResourceEncoder;
99fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddimport com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
10cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport com.bumptech.glide.load.model.NullEncoder;
11c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
12c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Juddimport java.io.InputStream;
13c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
14c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Juddpublic class FileDescriptorBitmapDataLoadProvider implements DataLoadProvider<ParcelFileDescriptor, Bitmap> {
15c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    private final StreamBitmapDecoder cacheDecoder;
16c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    private final FileDescriptorBitmapDecoder sourceDecoder;
17c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    private final BitmapEncoder encoder;
18cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd    private final NullEncoder<ParcelFileDescriptor> sourceEncoder;
19c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
20c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    public FileDescriptorBitmapDataLoadProvider(BitmapPool bitmapPool) {
21c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        cacheDecoder = new StreamBitmapDecoder(bitmapPool);
22c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        sourceDecoder = new FileDescriptorBitmapDecoder(bitmapPool);
23c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        encoder = new BitmapEncoder();
24cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd        sourceEncoder = NullEncoder.get();
25c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    }
26c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
27c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    @Override
28c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    public ResourceDecoder<InputStream, Bitmap> getCacheDecoder() {
29c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        return cacheDecoder;
30c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    }
31c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
32c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    @Override
33c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    public ResourceDecoder<ParcelFileDescriptor, Bitmap> getSourceDecoder() {
34c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        return sourceDecoder;
35c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    }
36c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd
37c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    @Override
38cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd    public Encoder<ParcelFileDescriptor> getSourceEncoder() {
39cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd        return sourceEncoder;
40cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd    }
41cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd
42cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd    @Override
43c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    public ResourceEncoder<Bitmap> getEncoder() {
44c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd        return encoder;
45c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd    }
46c8c79d03924a757c29bbe7df5bc07b3cf8e02a83Sam Judd}
47