Home | History | Annotate | Download | only in gifbitmap
      1 package com.bumptech.glide.load.resource.gifbitmap;
      2 
      3 import android.graphics.Bitmap;
      4 import com.bumptech.glide.load.engine.Resource;
      5 import com.bumptech.glide.load.ResourceEncoder;
      6 import com.bumptech.glide.load.resource.gif.GifData;
      7 
      8 import java.io.OutputStream;
      9 
     10 public class GifBitmapWrapperResourceEncoder implements ResourceEncoder<GifBitmapWrapper> {
     11     private final ResourceEncoder<Bitmap> bitmapEncoder;
     12     private final ResourceEncoder<GifData> gifEncoder;
     13     private String id;
     14 
     15     public GifBitmapWrapperResourceEncoder(ResourceEncoder<Bitmap> bitmapEncoder, ResourceEncoder<GifData> gifEncoder) {
     16         this.bitmapEncoder = bitmapEncoder;
     17         this.gifEncoder = gifEncoder;
     18     }
     19 
     20     @Override
     21     public boolean encode(Resource<GifBitmapWrapper> resource, OutputStream os) {
     22         final GifBitmapWrapper gifBitmap = resource.get();
     23         final Resource<Bitmap> bitmapResource = gifBitmap.getBitmapResource();
     24 
     25         if (bitmapResource != null) {
     26             return bitmapEncoder.encode(bitmapResource, os);
     27         } else {
     28             return gifEncoder.encode(gifBitmap.getGifResource(), os);
     29         }
     30     }
     31 
     32     @Override
     33     public String getId() {
     34         if (id == null) {
     35             id = bitmapEncoder.getId() + gifEncoder.getId();
     36         }
     37         return id;
     38     }
     39 }
     40