package com.bumptech.glide.load.resource.gifbitmap; import android.graphics.Bitmap; import com.bumptech.glide.load.engine.Resource; import com.bumptech.glide.load.ResourceEncoder; import com.bumptech.glide.load.resource.gif.GifData; import java.io.OutputStream; public class GifBitmapWrapperResourceEncoder implements ResourceEncoder { private final ResourceEncoder bitmapEncoder; private final ResourceEncoder gifEncoder; private String id; public GifBitmapWrapperResourceEncoder(ResourceEncoder bitmapEncoder, ResourceEncoder gifEncoder) { this.bitmapEncoder = bitmapEncoder; this.gifEncoder = gifEncoder; } @Override public boolean encode(Resource resource, OutputStream os) { final GifBitmapWrapper gifBitmap = resource.get(); final Resource bitmapResource = gifBitmap.getBitmapResource(); if (bitmapResource != null) { return bitmapEncoder.encode(bitmapResource, os); } else { return gifEncoder.encode(gifBitmap.getGifResource(), os); } } @Override public String getId() { if (id == null) { id = bitmapEncoder.getId() + gifEncoder.getId(); } return id; } }