GifRequestBuilder.java revision cbba04826bfaf4f8055f922bc41937572983c17f
11254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerpackage com.bumptech.glide;
21254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
31254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport android.content.Context;
41254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport android.graphics.Bitmap;
51254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport android.graphics.drawable.Drawable;
61254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport android.view.animation.Animation;
7fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAIimport com.bumptech.glide.load.ResourceDecoder;
8fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAIimport com.bumptech.glide.load.ResourceEncoder;
91254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.Transformation;
101254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.resource.bitmap.CenterCrop;
111254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.resource.bitmap.FitCenter;
121254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.resource.gif.GifData;
131254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.resource.gif.GifDataTransformation;
141254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
15181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardtimport com.bumptech.glide.provider.LoadProvider;
161254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport com.bumptech.glide.request.RequestListener;
171254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
181254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerimport java.io.InputStream;
1930596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
201254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymerpublic class GifRequestBuilder<ModelType, TranscodeType>
2130596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        extends GenericRequestBuilder<ModelType, InputStream, GifData, TranscodeType> {
2230596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    private Glide glide;
2330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
241254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    GifRequestBuilder(Context context, ModelType model,
251254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer            LoadProvider<ModelType, InputStream, GifData, TranscodeType> loadProvider,
261254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer            Class<TranscodeType> transcodeClass, Glide glide) {
27181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt        super(context, model, loadProvider, transcodeClass, glide);
28500f483fff529dcd88ec96b9d5054be6cd6363a0Patrick McHardy        this.glide = glide;
29500f483fff529dcd88ec96b9d5054be6cd6363a0Patrick McHardy    }
30500f483fff529dcd88ec96b9d5054be6cd6363a0Patrick McHardy
31500f483fff529dcd88ec96b9d5054be6cd6363a0Patrick McHardy    @Override
32500f483fff529dcd88ec96b9d5054be6cd6363a0Patrick McHardy    public GifRequestBuilder<ModelType, TranscodeType> thumbnail(
339ee386a1b6d7704b259460152c959ab0e79e02aaMax Kellermann            GenericRequestBuilder<ModelType, InputStream, GifData, TranscodeType> thumbnailRequest) {
341254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        super.thumbnail(thumbnailRequest);
351254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        return this;
361254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
37181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt
38181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt    public GifRequestBuilder<ModelType, TranscodeType> thumbnail(
391254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer            GifRequestBuilder<ModelType, TranscodeType> thumbnailRequest) {
40fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.thumbnail(thumbnailRequest);
41fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
421254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
431254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
441254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
45fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> thumbnail(float sizeMultiplier) {
4630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.thumbnail(sizeMultiplier);
471254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        return this;
48efa8fc2123a2a9fc229ab471edd2b2688ce1da3aHarald Welte    }
49efa8fc2123a2a9fc229ab471edd2b2688ce1da3aHarald Welte
501254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
51fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> sizeMultiplier(float sizeMultiplier) {
52fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.sizeMultiplier(sizeMultiplier);
53fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
541254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
551254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
561254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
57fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> decoder(
5830596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer            ResourceDecoder<InputStream, GifData> decoder) {
591254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        super.decoder(decoder);
601254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        return this;
61efa8fc2123a2a9fc229ab471edd2b2688ce1da3aHarald Welte    }
621254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
63fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    @Override
64fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> cacheDecoder(
65fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI            ResourceDecoder<InputStream, GifData> cacheDecoder) {
6630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.cacheDecoder(cacheDecoder);
6730596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
6830596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    }
69fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
7030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    @Override
7130596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> encoder(
72fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI            ResourceEncoder<GifData> encoder) {
7330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.encoder(encoder);
74fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
75fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
7630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
7730596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    @Override
7830596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> priority(Priority priority) {
79fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.priority(priority);
8030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
8130596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    }
82fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
8330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> fitCenter() {
84fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return transformBitmap(new FitCenter(glide.getBitmapPool()));
85fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
8630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
8730596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> centerCrop() {
8830596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return transformBitmap(new CenterCrop(glide.getBitmapPool()));
89fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
9030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
9130596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> transformBitmap(Transformation<Bitmap> bitmapTransformation) {
9230596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return transform(new GifDataTransformation(bitmapTransformation));
93fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
94fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
95fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    @Override
961254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> transform(Transformation<GifData> transformation) {
971254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        super.transform(transformation);
981254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        return this;
991254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
1001254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
1011254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
1021254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> transcoder(
10330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer            ResourceTranscoder<GifData, TranscodeType> transcoder) {
10430596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.transcoder(transcoder);
10530596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
1061254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
1071254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
1081254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
109181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt    public GifRequestBuilder<ModelType, TranscodeType> animate(int animationId) {
1101254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        super.animate(animationId);
11130596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
11230596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    }
1131254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
1141254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
1151254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> animate(Animation animation) {
116181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt        super.animate(animation);
1171254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        return this;
118fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
119fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
1201254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
1211254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> placeholder(int resourceId) {
122fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.placeholder(resourceId);
12330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
124fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
125fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
12630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    @Override
127fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> placeholder(Drawable drawable) {
12830596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.placeholder(drawable);
129fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
13030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    }
131fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
132fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    @Override
13330596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> error(int resourceId) {
134fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.error(resourceId);
135fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
13630596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    }
137fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
1381254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
1391254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> error(Drawable drawable) {
1401254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer        super.error(drawable);
141181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt        return this;
1421254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    }
143fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
144fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    @Override
1451254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> listener(
146fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI            RequestListener<ModelType> requestListener) {
14730596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        super.listener(requestListener);
148fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
149fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
15030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer
151fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    @Override
15230596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> skipMemoryCache(boolean skip) {
153fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.skipMemoryCache(skip);
15430596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
155fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
156fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI
15730596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer    @Override
158fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    public GifRequestBuilder<ModelType, TranscodeType> skipDiskCache(boolean skip) {
159fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        super.skipDiskCache( skip);
16030596a5e7ae8c518a8a0bbf3aa891728e9f9ec1bBart De Schuymer        return this;
161fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI    }
1621254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer
1631254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    @Override
1641254871c88483cc1a0adc448a83cab6a9d4510a1Bart De Schuymer    public GifRequestBuilder<ModelType, TranscodeType> skipCache(boolean skip) {
165181dead3f13befe02769ef479bcbb51801b7fc4eJan Engelhardt        super.skipCache(skip);
166fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI        return this;
1678caee8b9e34fed4562fcff553197c161fc9d9979Pablo Neira    }
1688caee8b9e34fed4562fcff553197c161fc9d9979Pablo Neira}
169fec77fed67feb55aba4c33ae2367178c57ce83deYasuyuki KOZAKAI