@SuppressLint("CheckResult") @SuppressWarnings("PMD.ConstructorCallsOverridableMethod") protected RequestBuilder(Class<TranscodeType> transcodeClass, RequestBuilder<?> other) { this(other.glide, other.requestManager, transcodeClass, other.context); model = other.model; isModelSet = other.isModelSet; // This is safe because it will always mutate, no one else has access to the object. apply(other); }
@NonNull @CheckResult protected RequestBuilder<File> getDownloadOnlyRequest() { return new RequestBuilder<>(File.class, this).apply(DOWNLOAD_ONLY_OPTIONS); }
/** * Attempts to always load the resource as a {@link android.graphics.Bitmap}, even if it could * actually be animated. * * @return A new request builder for loading a {@link android.graphics.Bitmap} */ @NonNull @CheckResult public RequestBuilder<Bitmap> asBitmap() { return as(Bitmap.class).apply(DECODE_TYPE_BITMAP); }
@SuppressWarnings("unchecked") @Test public void testSetFrameTransformationSetsTransformationOnRequestBuilder() { verify(requestBuilder, times(2)).apply(isA(RequestOptions.class)); Transformation<Bitmap> transformation = mock(Transformation.class); loader.setFrameTransformation(transformation, firstFrame); verify(requestBuilder, times(3)).apply(isA(RequestOptions.class)); }
void setFrameTransformation(Transformation<Bitmap> transformation, Bitmap firstFrame) { this.transformation = Preconditions.checkNotNull(transformation); this.firstFrame = Preconditions.checkNotNull(firstFrame); requestBuilder = requestBuilder.apply(new RequestOptions().transform(transformation)); }
@Test public void testNullModelResolvesToUsePlaceholder() { Drawable placeholder = new ColorDrawable(Color.GREEN); requestManager .load(NULL) .apply(placeholderOf(placeholder)) .into(target); verify(target).onLoadFailed(eq(placeholder)); }
@Test public void testNullModelPrefersErrorDrawable() { Drawable placeholder = new ColorDrawable(Color.GREEN); Drawable error = new ColorDrawable(Color.RED); requestManager .load(NULL) .apply(placeholderOf(placeholder) .error(error)) .into(target); verify(target).onLoadFailed(eq(error)); }
@Test public void testGetNextFrameIncrementsSignatureAndAdvancesDecoderBeforeStartingLoad() { InOrder order = inOrder(gifDecoder, requestBuilder); order.verify(gifDecoder).advance(); order.verify(requestBuilder).apply(isA(RequestOptions.class)); order.verify(requestBuilder).into(aTarget()); }
@Override public void run() throws Throwable { Glide.with(context) .load(ResourceIds.drawable.shape_drawable) .apply(centerCropTransform()) .submit() .get(); } });
private static RequestBuilder<Bitmap> getRequestBuilder( RequestManager requestManager, int width, int height) { return requestManager .asBitmap() .apply( diskCacheStrategyOf(DiskCacheStrategy.NONE) .useAnimationPool(true) .skipMemoryCache(true) .override(width, height)); }
@Override public void run() throws Throwable { Glide.with(context) .load(colorDrawable) .apply(new RequestOptions() .centerCrop()) .submit() .get(); } });
@Test public void load_withShapeDrawableResourceId_asDrawable_withTransformation_validSize_succeeds() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(ResourceIds.drawable.shape_drawable) .apply(bitmapTransform(new RoundedCorners(10))) .submit(100, 200) .get(); assertThat(drawable).isNotNull(); assertThat(drawable.getIntrinsicWidth()).isEqualTo(100); assertThat(drawable.getIntrinsicHeight()).isEqualTo(200); }
@Test public void load_withStateListDrawableResourceId_asDrawable_withTransformation_nonNullDrawable() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(ResourceIds.drawable.state_list_drawable) .apply(centerCropTransform()) .submit() .get(); assertThat(drawable).isNotNull(); }
@Test public void load_withVectorDrawableResourceId_asDrawable_withTransformation_nonNullDrawable() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(ResourceIds.drawable.vector_drawable) .apply(centerCropTransform()) .submit() .get(); assertThat(drawable).isNotNull(); }
@Test public void load_withBitmapResourceId_asDrawable_withTransformation_producesNonNullBitmap() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(android.R.drawable.star_big_off) .apply(centerCropTransform()) .submit() .get(); assertThat(drawable).isNotNull(); }
@Test public void load_withNinePatchResourceId_asDrawable_withTransformation_producesNonNullDrawable() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(ResourceIds.drawable.googlelogo_color_120x44dp) .apply(centerCropTransform()) .submit() .get(); assertThat(drawable).isNotNull(); }
@Test public void load_withBitmapAliasResourceId_asDrawable_withTransformation_producesNonNullDrawable() throws ExecutionException, InterruptedException { Drawable drawable = Glide.with(context) .load(ResourceIds.drawable.bitmap_alias) .apply(centerCropTransform()) .submit() .get(); assertThat(drawable).isNotNull(); }
@Test public void testToBytesOption() { Uri uri = Uri.parse("content://something/else"); mockUri(uri); requestManager.as(byte[].class).apply(decodeTypeOf(Bitmap.class)).load(uri).into(target); verify(target).onResourceReady(isA(byte[].class), isA(Transition.class)); }
@Test public void testReceivesGifBytes() { String fakeUri = "content://fake"; InputStream testGifData = openGif(); mockUri(Uri.parse(fakeUri), testGifData); requestManager.as(byte[].class).apply(decodeTypeOf(GifDrawable.class)).load(fakeUri) .into(target); verify(target).onResourceReady(isA(byte[].class), isA(Transition.class)); }
@Test public void testReceivesBitmapBytes() { String fakeUri = "content://fake"; mockUri(fakeUri); requestManager.as(byte[].class).apply(decodeTypeOf(Bitmap.class)).load(fakeUri).into(target); verify(target).onResourceReady(isA(byte[].class), isA(Transition.class)); }