ImageVideoGifDataLoadProvider.java revision fc3f03260933d96fae33a43846860f226dd661fe
1package com.bumptech.glide.load.resource.gifbitmap;
2
3import android.graphics.Bitmap;
4import com.bumptech.glide.DataLoadProvider;
5import com.bumptech.glide.load.ResourceDecoder;
6import com.bumptech.glide.load.ResourceEncoder;
7import com.bumptech.glide.load.model.ImageVideoWrapper;
8import com.bumptech.glide.load.resource.gif.GifData;
9
10import java.io.InputStream;
11
12public class ImageVideoGifDataLoadProvider implements DataLoadProvider<ImageVideoWrapper, GifBitmapWrapper> {
13    private final GifBitmapWrapperStreamResourceDecoder cacheDecoder;
14    private final GifBitmapWrapperResourceDecoder sourceDecoder;
15    private final GifBitmapWrapperResourceEncoder encoder;
16
17    public ImageVideoGifDataLoadProvider(DataLoadProvider<ImageVideoWrapper, Bitmap> bitmapProvider,
18            DataLoadProvider<InputStream, GifData> gifProvider) {
19        cacheDecoder = new GifBitmapWrapperStreamResourceDecoder(new GifBitmapWrapperResourceDecoder(
20                bitmapProvider.getSourceDecoder(),
21                gifProvider.getCacheDecoder()));
22        sourceDecoder = new GifBitmapWrapperResourceDecoder(
23                bitmapProvider.getSourceDecoder(),
24                gifProvider.getSourceDecoder());
25        encoder = new GifBitmapWrapperResourceEncoder(bitmapProvider.getEncoder(), gifProvider.getEncoder());
26    }
27
28    @Override
29    public ResourceDecoder<InputStream, GifBitmapWrapper> getCacheDecoder() {
30        return cacheDecoder;
31    }
32
33    @Override
34    public ResourceDecoder<ImageVideoWrapper, GifBitmapWrapper> getSourceDecoder() {
35        return sourceDecoder;
36    }
37
38    @Override
39    public ResourceEncoder<GifBitmapWrapper> getEncoder() {
40        return encoder;
41    }
42}
43