use transition for drawable requests

This commit is contained in:
dkanada 2020-09-22 18:40:34 +09:00
commit 5006611229
3 changed files with 14 additions and 13 deletions

View file

@ -10,6 +10,7 @@ import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.RequestManager; import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions; import com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.transition.ViewAnimationFactory; import com.bumptech.glide.request.transition.ViewAnimationFactory;
import com.bumptech.glide.signature.ObjectKey; import com.bumptech.glide.signature.ObjectKey;
@ -24,7 +25,6 @@ import static com.bumptech.glide.GenericTransitionOptions.with;
public class CustomGlideRequest { public class CustomGlideRequest {
public static final DiskCacheStrategy DEFAULT_DISK_CACHE_STRATEGY = DiskCacheStrategy.ALL; public static final DiskCacheStrategy DEFAULT_DISK_CACHE_STRATEGY = DiskCacheStrategy.ALL;
public static final int DEFAULT_IMAGE = R.drawable.default_album_art; public static final int DEFAULT_IMAGE = R.drawable.default_album_art;
public static final int DEFAULT_ANIMATION = android.R.anim.fade_in; public static final int DEFAULT_ANIMATION = android.R.anim.fade_in;
@ -32,28 +32,29 @@ public class CustomGlideRequest {
final RequestManager requestManager; final RequestManager requestManager;
final String item; final String item;
public static Builder from(@NonNull RequestManager requestManager, String item) {
return new Builder(requestManager, item);
}
private Builder(@NonNull RequestManager requestManager, String item) { private Builder(@NonNull RequestManager requestManager, String item) {
this.requestManager = requestManager; this.requestManager = requestManager;
this.item = item; this.item = item;
} }
public static Builder from(@NonNull RequestManager requestManager, String item) {
return new Builder(requestManager, item);
}
public PaletteBuilder generatePalette(Context context) { public PaletteBuilder generatePalette(Context context) {
return new PaletteBuilder(this, context); return new PaletteBuilder(this, context);
} }
public BitmapBuilder asBitmap() { public BitmapBuilder bitmap() {
return new BitmapBuilder(this); return new BitmapBuilder(this);
} }
public RequestBuilder<Drawable> build() { public RequestBuilder<Drawable> build() {
Object uri = item != null ? createUrl(item) : R.drawable.default_album_art; Object uri = item != null ? createUrl(item) : DEFAULT_IMAGE;
return requestManager.load(uri) return requestManager.load(uri)
.apply(createRequestOptions(item)); .apply(createRequestOptions(item))
.transition(new DrawableTransitionOptions().crossFade());
} }
} }
@ -65,11 +66,11 @@ public class CustomGlideRequest {
} }
public RequestBuilder<Bitmap> build() { public RequestBuilder<Bitmap> build() {
Object uri = builder.item != null ? createUrl(builder.item) : R.drawable.default_album_art; Object uri = builder.item != null ? createUrl(builder.item) : DEFAULT_IMAGE;
return builder.requestManager.asBitmap().load(uri) return builder.requestManager.asBitmap().load(uri)
.apply(createRequestOptions(builder.item)) .apply(createRequestOptions(builder.item))
.transition(new BitmapTransitionOptions().crossFade(DEFAULT_ANIMATION)); .transition(new BitmapTransitionOptions().crossFade());
} }
} }
@ -83,7 +84,7 @@ public class CustomGlideRequest {
} }
public RequestBuilder<BitmapPaletteWrapper> build() { public RequestBuilder<BitmapPaletteWrapper> build() {
Object uri = builder.item != null ? createUrl(builder.item) : R.drawable.default_album_art; Object uri = builder.item != null ? createUrl(builder.item) : DEFAULT_IMAGE;
return builder.requestManager.as(BitmapPaletteWrapper.class).load(uri) return builder.requestManager.as(BitmapPaletteWrapper.class).load(uri)
.apply(createRequestOptions(builder.item)) .apply(createRequestOptions(builder.item))

View file

@ -546,7 +546,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
final Point screenSize = Util.getScreenSize(MusicService.this); final Point screenSize = Util.getScreenSize(MusicService.this);
final RequestBuilder<Bitmap> request = CustomGlideRequest.Builder final RequestBuilder<Bitmap> request = CustomGlideRequest.Builder
.from(Glide.with(MusicService.this), song.primary) .from(Glide.with(MusicService.this), song.primary)
.asBitmap().build(); .bitmap().build();
if (PreferenceUtil.getInstance(this).getBlurAlbumCover()) { if (PreferenceUtil.getInstance(this).getBlurAlbumCover()) {
request.transform(new BlurTransformation.Builder(MusicService.this).build()); request.transform(new BlurTransformation.Builder(MusicService.this).build());

View file

@ -97,7 +97,7 @@ public class AppWidgetAlbum extends BaseAppWidget {
} }
target = CustomGlideRequest.Builder.from(Glide.with(appContext), song.primary) target = CustomGlideRequest.Builder.from(Glide.with(appContext), song.primary)
.asBitmap().build() .bitmap().build()
.into(new SimpleTarget<Bitmap>(widgetImageSize, widgetImageSize) { .into(new SimpleTarget<Bitmap>(widgetImageSize, widgetImageSize) {
@Override @Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> glideAnimation) { public void onResourceReady(Bitmap resource, Transition<? super Bitmap> glideAnimation) {