diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java index f45c56e78a..5b6d76d7ef 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java @@ -14,6 +14,9 @@ import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.IconCompat; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.target.CustomViewTarget; import com.bumptech.glide.request.transition.Transition; @@ -57,8 +60,7 @@ public final class AvatarUtil { GlideApp.with(target) .load(photo) - .transform(new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS)) - .centerCrop() + .transform(new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS), new CenterCrop()) .into(new CustomViewTarget(target) { @Override public void onLoadFailed(@Nullable Drawable errorDrawable) { @@ -140,18 +142,18 @@ public final class AvatarUtil { } private static GlideRequest requestCircle(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, int targetSize) { - return request(glideRequest, context, recipient, targetSize).circleCrop(); + return request(glideRequest, context, recipient, targetSize, new CircleCrop()); } private static GlideRequest requestSquare(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient) { - return request(glideRequest, context, recipient, UNDEFINED_SIZE).centerCrop(); + return request(glideRequest, context, recipient, UNDEFINED_SIZE, new CenterCrop()); } - private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, int targetSize) { - return request(glideRequest, context, recipient, true, targetSize); + private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, int targetSize, @Nullable BitmapTransformation transformation) { + return request(glideRequest, context, recipient, true, targetSize, transformation); } - private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, boolean loadSelf, int targetSize) { + private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, boolean loadSelf, int targetSize, @Nullable BitmapTransformation transformation) { final ContactPhoto photo; if (Recipient.self().equals(recipient) && loadSelf) { photo = new ProfileContactPhoto(recipient); @@ -164,7 +166,14 @@ public final class AvatarUtil { .diskCacheStrategy(DiskCacheStrategy.ALL); if (recipient.shouldBlurAvatar()) { - return request.transform(new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS)); + BlurTransformation blur = new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS); + if (transformation != null) { + return request.transform(blur, transformation); + } else { + return request.transform(blur); + } + } else if (transformation != null) { + return request.transform(transformation); } else { return request; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BlurTransformation.java b/app/src/main/java/org/thoughtcrime/securesms/util/BlurTransformation.java index 4292af93b4..485b6346ab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BlurTransformation.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BlurTransformation.java @@ -20,6 +20,7 @@ import java.util.Locale; public final class BlurTransformation extends BitmapTransformation { + private static final int VERSION = 1; public static final float MAX_RADIUS = 25f; private final RenderScript rs; @@ -58,6 +59,6 @@ public final class BlurTransformation extends BitmapTransformation { @Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) { - messageDigest.update(String.format(Locale.US, "blur-%f-%f", bitmapScaleFactor, blurRadius).getBytes()); + messageDigest.update(String.format(Locale.US, "blur-%f-%f-%d", bitmapScaleFactor, blurRadius, VERSION).getBytes()); } } \ No newline at end of file