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