1be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddpackage com.bumptech.glide; 2be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport android.content.Context; 4be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport android.graphics.Bitmap; 5be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport android.graphics.drawable.Drawable; 6be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport android.view.animation.Animation; 7e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Juddimport android.widget.ImageView; 8f7a6d65cf7c1a41908dd48e0dab68ee5b881387eSam Judd 9cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport com.bumptech.glide.load.Encoder; 107d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddimport com.bumptech.glide.load.Key; 11be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.load.ResourceDecoder; 12be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.load.ResourceEncoder; 13be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.load.Transformation; 14f59f35a759798ea0a5751e34a2585606fc9796afSam Juddimport com.bumptech.glide.load.engine.DiskCacheStrategy; 15be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.load.model.ImageVideoWrapper; 161614d6b4169b2930d3d2c17210c438708bb1117dSam Juddimport com.bumptech.glide.load.resource.bitmap.BitmapTransformation; 175c3697fff7866246e107030b8c92359d4ebc1cf3Sam Juddimport com.bumptech.glide.load.resource.drawable.GlideDrawable; 18fc3f03260933d96fae33a43846860f226dd661feSam Juddimport com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapper; 19fc3f03260933d96fae33a43846860f226dd661feSam Juddimport com.bumptech.glide.load.resource.gifbitmap.GifBitmapWrapperTransformation; 20be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.load.resource.transcode.ResourceTranscoder; 21d8eac4cec0fe1fa9b496998cfac858fd603f4f32Sam Juddimport com.bumptech.glide.manager.Lifecycle; 22667fb8129df68fbab0c489b23b2ca9d392cd45a0Sam Juddimport com.bumptech.glide.manager.RequestTracker; 23be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Juddimport com.bumptech.glide.provider.LoadProvider; 241a0d2f25951a536b465c5b2a1dfa5d3c076de912Sam Juddimport com.bumptech.glide.request.RequestListener; 2569aee75208194b4b6d4fca4aa7a4ec8c2dfec486Sam Juddimport com.bumptech.glide.request.animation.DrawableCrossFadeFactory; 265f4610b54d517be58105bcf73ce3291ba79f9f40Sam Juddimport com.bumptech.glide.request.animation.ViewPropertyAnimation; 27e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Juddimport com.bumptech.glide.request.target.Target; 28be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 290db3c45b412be1a5bfcb1da046836e89d3ffd0b4Sam Juddimport java.io.File; 30be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 315f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd/** 325c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * A class for creating a request to load a {@link GlideDrawable}. 335f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 34c32f00a2aca81ee641955bda36cf3e985d628df6Sam Judd * <p> 35c32f00a2aca81ee641955bda36cf3e985d628df6Sam Judd * Warning - It is <em>not</em> safe to use this builder after calling <code>into()</code>, it may be pooled and 36c32f00a2aca81ee641955bda36cf3e985d628df6Sam Judd * reused. 37c32f00a2aca81ee641955bda36cf3e985d628df6Sam Judd * </p> 38c32f00a2aca81ee641955bda36cf3e985d628df6Sam Judd * 395f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @paramThe type of model that will be loaded into the target. 405f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 415f4610b54d517be58105bcf73ce3291ba79f9f40Sam Juddpublic class DrawableRequestBuilder<ModelType> 425c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd extends GenericRequestBuilder<ModelType, ImageVideoWrapper, GifBitmapWrapper, GlideDrawable> 43d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd implements BitmapOptions, DrawableOptions { 44be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 45b01082225896132431da0ee9a85028d610ae4abfSam Judd DrawableRequestBuilder(Context context, Class<ModelType> modelClass, 465c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd LoadProvider<ModelType, ImageVideoWrapper, GifBitmapWrapper, GlideDrawable> loadProvider, Glide glide, 47d8eac4cec0fe1fa9b496998cfac858fd603f4f32Sam Judd RequestTracker requestTracker, Lifecycle lifecycle) { 48b01082225896132431da0ee9a85028d610ae4abfSam Judd super(context, modelClass, loadProvider, GlideDrawable.class, glide, requestTracker, lifecycle); 49c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd // Default to animating. 50c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd crossFade(); 51be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 52be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 535f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 545c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * Loads and displays the {@link GlideDrawable} retrieved by the given thumbnail request if it finishes before this 555c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * request. Best used for loading thumbnail {@link GlideDrawable}s that are smaller and will be loaded more quickly 565c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * than the fullsize {@link GlideDrawable}. There are no guarantees about the order in which the requests will 575c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * actually finish. However, if the thumb request completes after the full request, the thumb {@link GlideDrawable} 585c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * will never replace the full image. 595f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 605f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @see #thumbnail(float) 615f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 625f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * <p> 635f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * Note - Any options on the main request will not be passed on to the thumbnail request. For example, if 645c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * you want an animation to occur when either the full {@link GlideDrawable} loads or the thumbnail loads, 655f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * you need to call {@link #animate(int)} on both the thumb and the full request. For a simpler thumbnail 665f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * option where these options are applied to the humbnail as well, see {@link #thumbnail(float)}. 675f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * </p> 685f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 695f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * <p> 705f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * Only the thumbnail call on the main request will be obeyed, recursive calls to this method are ignored. 715f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * </p> 725f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 735f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @param thumbnailRequest The request to use to load the thumbnail. 745f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @return This builder object. 755f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 76be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> thumbnail( 77f08ab536741266de5ed3887a2b3d5469299e89e9Sam Judd DrawableRequestBuilder<?> thumbnailRequest) { 78be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.thumbnail(thumbnailRequest); 79be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 80be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 81be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 825f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 835f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 845f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 85be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 86be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> thumbnail( 87f08ab536741266de5ed3887a2b3d5469299e89e9Sam Judd GenericRequestBuilder<?, ?, ?, GlideDrawable> thumbnailRequest) { 88be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.thumbnail(thumbnailRequest); 89be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 90be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 91be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 925f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 935f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 945f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 95be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 96be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> thumbnail(float sizeMultiplier) { 97be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.thumbnail(sizeMultiplier); 98be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 99be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 100be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1015f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1025f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 1035f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 104be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 1051614d6b4169b2930d3d2c17210c438708bb1117dSam Judd public DrawableRequestBuilder<ModelType> sizeMultiplier(float sizeMultiplier) { 106be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.sizeMultiplier(sizeMultiplier); 107be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 108be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 109be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1105f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1115f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 1125f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 113be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 1141614d6b4169b2930d3d2c17210c438708bb1117dSam Judd public DrawableRequestBuilder<ModelType> decoder(ResourceDecoder<ImageVideoWrapper, GifBitmapWrapper> decoder) { 115be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.decoder(decoder); 116be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 117be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 118be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1195f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1205f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 1215f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 122be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 1231614d6b4169b2930d3d2c17210c438708bb1117dSam Judd public DrawableRequestBuilder<ModelType> cacheDecoder(ResourceDecoder<File, GifBitmapWrapper> cacheDecoder) { 124be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.cacheDecoder(cacheDecoder); 125be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 126be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 127be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1285f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1295f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 1305f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 131be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 1321614d6b4169b2930d3d2c17210c438708bb1117dSam Judd public DrawableRequestBuilder<ModelType> encoder(ResourceEncoder<GifBitmapWrapper> encoder) { 133be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.encoder(encoder); 134be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 135be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 136be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1375f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1385f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 1395f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 140be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 141be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> priority(Priority priority) { 142be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.priority(priority); 143be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 144be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 145be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1465f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1475c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * Transform {@link GlideDrawable}s using the given 1481614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * {@link com.bumptech.glide.load.resource.bitmap.BitmapTransformation}s. 1491614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * 1501614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * <p> 1511614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * Note - Bitmap transformations will apply individually to each frame of animated GIF images and also to 1521614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * individual {@link Bitmap}s. 1531614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * </p> 1541614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * 1551614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #centerCrop() 1561614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #fitCenter() 1571614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #bitmapTransform(com.bumptech.glide.load.Transformation[]) 1581614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #transform(com.bumptech.glide.load.Transformation[]) 1591614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * 1601614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @param transformations The transformations to apply in order. 1611614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @return This request builder. 1621614d6b4169b2930d3d2c17210c438708bb1117dSam Judd */ 1631614d6b4169b2930d3d2c17210c438708bb1117dSam Judd public DrawableRequestBuilder<ModelType> transform(BitmapTransformation... transformations) { 1641614d6b4169b2930d3d2c17210c438708bb1117dSam Judd return bitmapTransform(transformations); 1651614d6b4169b2930d3d2c17210c438708bb1117dSam Judd } 1661614d6b4169b2930d3d2c17210c438708bb1117dSam Judd 1671614d6b4169b2930d3d2c17210c438708bb1117dSam Judd /** 1685c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * Transform {@link GlideDrawable}s using {@link com.bumptech.glide.load.resource.bitmap.CenterCrop}. 1695f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 170876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #fitCenter() 1711614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #transform(com.bumptech.glide.load.resource.bitmap.BitmapTransformation...) 172876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #bitmapTransform(com.bumptech.glide.load.Transformation[]) 173876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #transform(com.bumptech.glide.load.Transformation[]) 174876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * 1755f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @return This request builder. 1765f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 1778acb4cc63588cdf595357bb60ac1ac79d3985893Robert Papp @SuppressWarnings("unchecked") 178be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> centerCrop() { 17970db081bbc0a80737f457c6388f4af4c1391f5f5Sam Judd return transform(glide.getDrawableCenterCrop()); 180be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 181be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1825f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1835c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * Transform {@link GlideDrawable}s using {@link com.bumptech.glide.load.resource.bitmap.FitCenter}. 1845f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 185876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #centerCrop() 1861614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #transform(com.bumptech.glide.load.resource.bitmap.BitmapTransformation...) 187876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #bitmapTransform(com.bumptech.glide.load.Transformation[]) 188876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #transform(com.bumptech.glide.load.Transformation[]) 189876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * 1905f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @return This request builder. 1915f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 1928acb4cc63588cdf595357bb60ac1ac79d3985893Robert Papp @SuppressWarnings("unchecked") 193be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> fitCenter() { 19470db081bbc0a80737f457c6388f4af4c1391f5f5Sam Judd return transform(glide.getDrawableFitCenter()); 195be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 196be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 1975f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 1985c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * Transform {@link GlideDrawable}s using the given {@link android.graphics.Bitmap} transformations. Replaces any 1995c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd * previous transformations. 200876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * 201876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #fitCenter() 202876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #centerCrop() 2031614d6b4169b2930d3d2c17210c438708bb1117dSam Judd * @see #transform(com.bumptech.glide.load.resource.bitmap.BitmapTransformation...) 204876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #transform(com.bumptech.glide.load.Transformation[]) 2055f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 2065f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @return This request builder. 2075f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 208876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd public DrawableRequestBuilder<ModelType> bitmapTransform(Transformation<Bitmap>... bitmapTransformations) { 209876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd GifBitmapWrapperTransformation[] transformations = 210876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd new GifBitmapWrapperTransformation[bitmapTransformations.length]; 211876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd for (int i = 0; i < bitmapTransformations.length; i++) { 21221c2822985058df655ee4874798297f74c5e367eSam Judd transformations[i] = new GifBitmapWrapperTransformation(glide.getBitmapPool(), bitmapTransformations[i]); 213876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd } 214876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd return transform(transformations); 215be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 216be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 217f7b3e5d7a4893fd55b3fd36be56bb37319d8aa24Sam Judd 218f7b3e5d7a4893fd55b3fd36be56bb37319d8aa24Sam Judd 2195f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 2205f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 221876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * 222876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #bitmapTransform(com.bumptech.glide.load.Transformation[]) 223876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #centerCrop() 224876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd * @see #fitCenter() 2255f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 226be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 227876b9f6ad347c12636d14b9196d08958b1310bc1Sam Judd public DrawableRequestBuilder<ModelType> transform(Transformation<GifBitmapWrapper>... transformation) { 228be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.transform(transformation); 229be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 230be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 231be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 2325f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 2335f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 2345f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 235be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 2365c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd public DrawableRequestBuilder<ModelType> transcoder( 2375c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd ResourceTranscoder<GifBitmapWrapper, GlideDrawable> transcoder) { 238be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.transcoder(transcoder); 239be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 240be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 241be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 2425f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 243d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd * {@inheritDoc} 2445f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 2455ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd public final DrawableRequestBuilder<ModelType> crossFade() { 24669aee75208194b4b6d4fca4aa7a4ec8c2dfec486Sam Judd super.animate(new DrawableCrossFadeFactory<GlideDrawable>()); 247531667420f0cb59e01e0ae5928392469006148ddSam Judd return this; 248531667420f0cb59e01e0ae5928392469006148ddSam Judd } 249531667420f0cb59e01e0ae5928392469006148ddSam Judd 2505f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 251d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd * {@inheritDoc} 2525f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 253531667420f0cb59e01e0ae5928392469006148ddSam Judd public DrawableRequestBuilder<ModelType> crossFade(int duration) { 25469aee75208194b4b6d4fca4aa7a4ec8c2dfec486Sam Judd super.animate(new DrawableCrossFadeFactory<GlideDrawable>(duration)); 255531667420f0cb59e01e0ae5928392469006148ddSam Judd return this; 256531667420f0cb59e01e0ae5928392469006148ddSam Judd } 257531667420f0cb59e01e0ae5928392469006148ddSam Judd 2585f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 259d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd * {@inheritDoc} 2605f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 2614c0c22e7f5fa76d9f44d79b06866f1d09f305d82Sam Judd @Deprecated 262531667420f0cb59e01e0ae5928392469006148ddSam Judd public DrawableRequestBuilder<ModelType> crossFade(Animation animation, int duration) { 26369aee75208194b4b6d4fca4aa7a4ec8c2dfec486Sam Judd super.animate(new DrawableCrossFadeFactory<GlideDrawable>(animation, duration)); 264531667420f0cb59e01e0ae5928392469006148ddSam Judd return this; 265531667420f0cb59e01e0ae5928392469006148ddSam Judd } 266531667420f0cb59e01e0ae5928392469006148ddSam Judd 2675f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 268d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd * {@inheritDoc} 2695f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 270531667420f0cb59e01e0ae5928392469006148ddSam Judd public DrawableRequestBuilder<ModelType> crossFade(int animationId, int duration) { 27169aee75208194b4b6d4fca4aa7a4ec8c2dfec486Sam Judd super.animate(new DrawableCrossFadeFactory<GlideDrawable>(context, animationId, 272d2c42cb991e9395f4560cb433ce796082d15e3daSam Judd duration)); 273531667420f0cb59e01e0ae5928392469006148ddSam Judd return this; 274531667420f0cb59e01e0ae5928392469006148ddSam Judd } 275531667420f0cb59e01e0ae5928392469006148ddSam Judd 2765f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 2775f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 2785f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 279531667420f0cb59e01e0ae5928392469006148ddSam Judd @Override 280c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd public DrawableRequestBuilder<ModelType> dontAnimate() { 281c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd super.dontAnimate(); 282c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd return this; 283c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd } 284c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd 285c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd /** 286c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd * {@inheritDoc} 287c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd */ 288c85c5fe1ee57a14cb7585b77bd4ab81d97ad45c8Sam Judd @Override 289531667420f0cb59e01e0ae5928392469006148ddSam Judd public DrawableRequestBuilder<ModelType> animate(ViewPropertyAnimation.Animator animator) { 290531667420f0cb59e01e0ae5928392469006148ddSam Judd super.animate(animator); 291531667420f0cb59e01e0ae5928392469006148ddSam Judd return this; 292531667420f0cb59e01e0ae5928392469006148ddSam Judd } 293531667420f0cb59e01e0ae5928392469006148ddSam Judd 2945f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 2955f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 2965f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 297be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 298be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> animate(int animationId) { 299be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.animate(animationId); 300be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 301be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 302be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3035f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3045f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3055f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 3064c0c22e7f5fa76d9f44d79b06866f1d09f305d82Sam Judd @Deprecated 3074c0c22e7f5fa76d9f44d79b06866f1d09f305d82Sam Judd @SuppressWarnings("deprecation") 308be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 309be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> animate(Animation animation) { 310be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.animate(animation); 311be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 312be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 313be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3145f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3155f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3165f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 317be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 318be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> placeholder(int resourceId) { 319be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.placeholder(resourceId); 320be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 321be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 322be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3235f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3245f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3255f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 326be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 327be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> placeholder(Drawable drawable) { 328be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.placeholder(drawable); 329be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 330be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 331be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3325f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3335f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3345f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 335be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 336be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> error(int resourceId) { 337be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.error(resourceId); 338be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 339be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 340be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3415f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3425f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3435f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 344be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 345be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd public DrawableRequestBuilder<ModelType> error(Drawable drawable) { 346be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.error(drawable); 347be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 348be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 349be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3505f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3515f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3525f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 353be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 354688909efa77b8effea7dc02424362706af57048cSam Judd public DrawableRequestBuilder<ModelType> listener( 355688909efa77b8effea7dc02424362706af57048cSam Judd RequestListener<? super ModelType, GlideDrawable> requestListener) { 356be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd super.listener(requestListener); 357be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 358be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 359be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3605f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3615f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3625f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 363be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 364f59f35a759798ea0a5751e34a2585606fc9796afSam Judd public DrawableRequestBuilder<ModelType> diskCacheStrategy(DiskCacheStrategy strategy) { 365f59f35a759798ea0a5751e34a2585606fc9796afSam Judd super.diskCacheStrategy(strategy); 366be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 367be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 368be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd 3695f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3705f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3715f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 372be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd @Override 373f59f35a759798ea0a5751e34a2585606fc9796afSam Judd public DrawableRequestBuilder<ModelType> skipMemoryCache(boolean skip) { 374f59f35a759798ea0a5751e34a2585606fc9796afSam Judd super.skipMemoryCache(skip); 375be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd return this; 376be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd } 377985687813fcdda9136dcf255784409f65317b280Sam Judd 3785f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3795f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3805f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 381985687813fcdda9136dcf255784409f65317b280Sam Judd @Override 382985687813fcdda9136dcf255784409f65317b280Sam Judd public DrawableRequestBuilder<ModelType> override(int width, int height) { 383985687813fcdda9136dcf255784409f65317b280Sam Judd super.override(width, height); 384985687813fcdda9136dcf255784409f65317b280Sam Judd return this; 385985687813fcdda9136dcf255784409f65317b280Sam Judd } 386cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 3875f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 3885f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@inheritDoc} 3895f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 390cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd @Override 391cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd public DrawableRequestBuilder<ModelType> sourceEncoder(Encoder<ImageVideoWrapper> sourceEncoder) { 392cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd super.sourceEncoder(sourceEncoder); 393cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd return this; 394cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 39509a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd 39609a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd /** 39709a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd * {@inheritDoc} 39809a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd */ 39909a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd @Override 40009a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd public DrawableRequestBuilder<ModelType> dontTransform() { 40109a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd super.dontTransform(); 40209a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd return this; 40309a5b320544ce6eefe54e42f6462ddbbe73b8418Sam Judd } 404e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd 4057d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd @Override 4067d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd public DrawableRequestBuilder<ModelType> signature(Key signature) { 4077d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd super.signature(signature); 4087d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return this; 4097d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 4107d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 411b01082225896132431da0ee9a85028d610ae4abfSam Judd @Override 412b01082225896132431da0ee9a85028d610ae4abfSam Judd public DrawableRequestBuilder<ModelType> load(ModelType model) { 413b01082225896132431da0ee9a85028d610ae4abfSam Judd super.load(model); 414b01082225896132431da0ee9a85028d610ae4abfSam Judd return this; 415b01082225896132431da0ee9a85028d610ae4abfSam Judd } 416b01082225896132431da0ee9a85028d610ae4abfSam Judd 4177392026b13c2265081d2f467d072d5eb6011720eSam Judd @Override 4187392026b13c2265081d2f467d072d5eb6011720eSam Judd public DrawableRequestBuilder<ModelType> clone() { 4197392026b13c2265081d2f467d072d5eb6011720eSam Judd return (DrawableRequestBuilder<ModelType>) super.clone(); 4207392026b13c2265081d2f467d072d5eb6011720eSam Judd } 4217392026b13c2265081d2f467d072d5eb6011720eSam Judd 422e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd /** 423e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * {@inheritDoc} 424e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * 425e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * <p> 426e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * Note - If no transformation is set for this load, a default transformation will be applied based on the 427e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * value returned from {@link android.widget.ImageView#getScaleType()}. To avoid this default transformation, 428e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * use {@link #dontTransform()}. 429e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * </p> 430e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * 431e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * @param view {@inheritDoc} 432e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd * @return {@inheritDoc} 433e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd */ 434e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd @Override 4355c3697fff7866246e107030b8c92359d4ebc1cf3Sam Judd public Target<GlideDrawable> into(ImageView view) { 436e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd return super.into(view); 437e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd } 438e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd 439e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd @Override 440e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd void applyFitCenter() { 441e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd fitCenter(); 442e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd } 443e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd 444e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd @Override 445e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd void applyCenterCrop() { 446e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd centerCrop(); 447e1d45b25cb006ab0a85bc3e15ce3454b12a23235Sam Judd } 448be9ba784e13d6f8bf390ec0f11fc2600a38b0548Sam Judd} 449