1ea01ddd754126290fc18c3dc8f6095ce0216768aSam Juddpackage com.bumptech.glide.load.resource.gif; 2ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 3ea01ddd754126290fc18c3dc8f6095ce0216768aSam Juddimport com.bumptech.glide.Priority; 40f49c87b2f26f3e086f021461b7e5409a7d42be0Sam Juddimport com.bumptech.glide.gifdecoder.GifDecoder; 5ea01ddd754126290fc18c3dc8f6095ce0216768aSam Juddimport com.bumptech.glide.load.data.DataFetcher; 6ea01ddd754126290fc18c3dc8f6095ce0216768aSam Juddimport com.bumptech.glide.load.model.ModelLoader; 7ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 88e9362526ca1e73364de269ae09c75c98d0e23f5Sam Juddpublic class GifFrameModelLoader implements ModelLoader<GifDecoder, GifDecoder> { 9ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 10ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd @Override 11ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd public DataFetcher<GifDecoder> getResourceFetcher(GifDecoder model, int width, int height) { 12ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd return new GifFrameDataFetcher(model); 13ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd } 14ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 15ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd private static class GifFrameDataFetcher implements DataFetcher<GifDecoder> { 16ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd private GifDecoder decoder; 17ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 18ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd public GifFrameDataFetcher(GifDecoder decoder) { 19ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd this.decoder = decoder; 20ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd } 21ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 22ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd @Override 23ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd public GifDecoder loadData(Priority priority) throws Exception { 24ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd return decoder; 25ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd } 26ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 27ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd @Override 28ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd public void cleanup() { } 29ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd 30ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd @Override 3178bad2aa32f824f9e098b5058dfa3506a7ed3f62Sam Judd public String getId() { 3278bad2aa32f824f9e098b5058dfa3506a7ed3f62Sam Judd return decoder.getId() + decoder.getCurrentFrameIndex(); 3378bad2aa32f824f9e098b5058dfa3506a7ed3f62Sam Judd } 3478bad2aa32f824f9e098b5058dfa3506a7ed3f62Sam Judd 3578bad2aa32f824f9e098b5058dfa3506a7ed3f62Sam Judd @Override 36ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd public void cancel() { } 37ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd } 38ea01ddd754126290fc18c3dc8f6095ce0216768aSam Judd} 39