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