Home | History | Annotate | Download | only in bitmap
      1 package com.bumptech.glide.load.resource.bitmap;
      2 
      3 import android.graphics.Bitmap;
      4 import android.os.ParcelFileDescriptor;
      5 
      6 import com.bumptech.glide.load.Encoder;
      7 import com.bumptech.glide.load.ResourceDecoder;
      8 import com.bumptech.glide.load.ResourceEncoder;
      9 import com.bumptech.glide.load.model.ImageVideoWrapper;
     10 import com.bumptech.glide.load.model.ImageVideoWrapperEncoder;
     11 import com.bumptech.glide.provider.DataLoadProvider;
     12 
     13 import java.io.File;
     14 import java.io.InputStream;
     15 
     16 /**
     17  * A {@link com.bumptech.glide.provider.DataLoadProvider} for loading either an {@link java.io.InputStream} or an
     18  * {@link android.os.ParcelFileDescriptor} as an {@link android.graphics.Bitmap}.
     19  */
     20 public class ImageVideoDataLoadProvider implements DataLoadProvider<ImageVideoWrapper, Bitmap> {
     21     private final ImageVideoBitmapDecoder sourceDecoder;
     22     private final ResourceDecoder<File, Bitmap> cacheDecoder;
     23     private final ResourceEncoder<Bitmap> encoder;
     24     private final ImageVideoWrapperEncoder sourceEncoder;
     25 
     26     public ImageVideoDataLoadProvider(DataLoadProvider<InputStream, Bitmap> streamBitmapProvider,
     27             DataLoadProvider<ParcelFileDescriptor, Bitmap> fileDescriptorBitmapProvider) {
     28         encoder = streamBitmapProvider.getEncoder();
     29         sourceEncoder = new ImageVideoWrapperEncoder(streamBitmapProvider.getSourceEncoder(),
     30                 fileDescriptorBitmapProvider.getSourceEncoder());
     31         cacheDecoder = streamBitmapProvider.getCacheDecoder();
     32         sourceDecoder = new ImageVideoBitmapDecoder(streamBitmapProvider.getSourceDecoder(),
     33                 fileDescriptorBitmapProvider.getSourceDecoder());
     34     }
     35 
     36     @Override
     37     public ResourceDecoder<File, Bitmap> getCacheDecoder() {
     38         return cacheDecoder;
     39     }
     40 
     41     @Override
     42     public ResourceDecoder<ImageVideoWrapper, Bitmap> getSourceDecoder() {
     43         return sourceDecoder;
     44     }
     45 
     46     @Override
     47     public Encoder<ImageVideoWrapper> getSourceEncoder() {
     48         return sourceEncoder;
     49     }
     50 
     51     @Override
     52     public ResourceEncoder<Bitmap> getEncoder() {
     53         return encoder;
     54     }
     55 }
     56