From be66cff7359dc9fdf52f8f0f1bac6fffa3f91f14 Mon Sep 17 00:00:00 2001 From: Krunal Patel Date: Mon, 7 Nov 2022 16:09:58 +0530 Subject: [PATCH] Fixed: Fix overlay color filter messing up screen on `API <=28` For Android <= 9, `PorterDuff.Mode.MULTIPLY` causing unusable screen lag. Change to `PorterDuff.Mode.DARKEN`. --- .../src/main/java/com/termux/shared/image/ImageUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/termux-shared/src/main/java/com/termux/shared/image/ImageUtils.java b/termux-shared/src/main/java/com/termux/shared/image/ImageUtils.java index 7339711975..a021b5002d 100644 --- a/termux-shared/src/main/java/com/termux/shared/image/ImageUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/image/ImageUtils.java @@ -10,6 +10,7 @@ import android.graphics.ImageDecoder; import android.graphics.Point; import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.ThumbnailUtils; @@ -174,9 +175,9 @@ public static Drawable getDrawable(String path) { public static void addOverlay(Drawable drawable, int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - drawable.setColorFilter(new BlendModeColorFilter(color, BlendMode.MULTIPLY)); + drawable.setColorFilter(new BlendModeColorFilter(color, BlendMode.DARKEN)); } else { - drawable.setColorFilter(color, PorterDuff.Mode.MULTIPLY); + drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.DARKEN)); } }