From cb791f30d3e4f3433b8923c934e5eeb0a7d957df Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 25 Sep 2019 09:41:10 +0200 Subject: [PATCH] Require minimum luminance of 50% for texts --- app/src/main/java/eu/faircode/email/Helper.java | 1 - app/src/main/java/eu/faircode/email/HtmlHelper.java | 12 ++++++------ app/src/main/java/eu/faircode/email/Identicon.java | 7 ++++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 921da27b06..62212c55ae 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -111,7 +111,6 @@ public class Helper { static final int NOTIFICATION_UPDATE = 4; static final float LOW_LIGHT = 0.6f; - static final float MIN_LUMINANCE = 0.33f; static final int BUFFER_SIZE = 8192; // Same as in Files class diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 362006217b..91a54d82b8 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -85,6 +85,7 @@ import static androidx.core.text.HtmlCompat.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE; public class HtmlHelper { static final int PREVIEW_SIZE = 250; // characters + private static final float MIN_LUMINANCE = 0.5f; private static final int MAX_AUTO_LINK = 250; private static final int TRACKING_PIXEL_SURFACE = 25; // pixels @@ -193,13 +194,12 @@ public class HtmlHelper { } if (color != null) { - double lum = ColorUtils.calculateLuminance(color); - if (dark - ? lum < Helper.MIN_LUMINANCE - : lum > 1 - Helper.MIN_LUMINANCE) + float lum = (float) ColorUtils.calculateLuminance(color); + if (dark ? lum < MIN_LUMINANCE : lum > 1 - MIN_LUMINANCE) color = ColorUtils.blendARGB(color, - dark ? Color.WHITE : Color.BLACK, Helper.MIN_LUMINANCE); - c = String.format("#%06x", 0xFFFFFF & color); + dark ? Color.WHITE : Color.BLACK, + dark ? MIN_LUMINANCE - lum : lum - (1 - MIN_LUMINANCE)); + c = String.format("#%06x", color & 0xFFFFFF); sb.append("color:").append(c).append(";"); } break; diff --git a/app/src/main/java/eu/faircode/email/Identicon.java b/app/src/main/java/eu/faircode/email/Identicon.java index e247194e0e..ab5eaa1941 100644 --- a/app/src/main/java/eu/faircode/email/Identicon.java +++ b/app/src/main/java/eu/faircode/email/Identicon.java @@ -33,12 +33,14 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; class Identicon { + private static final float MIN_LUMINANCE = 0.33f; + static Bitmap icon(@NonNull String email, int size, int pixels, boolean dark) { byte[] hash = getHash(email); int color = Color.argb(255, hash[0], hash[1], hash[2]); color = ColorUtils.blendARGB(color, - dark ? Color.WHITE : Color.BLACK, Helper.MIN_LUMINANCE); + dark ? Color.WHITE : Color.BLACK, MIN_LUMINANCE); Paint paint = new Paint(); paint.setColor(color); @@ -77,8 +79,7 @@ class Identicon { byte[] hash = getHash(email); int color = Color.argb(255, hash[0], hash[1], hash[2]); - color = ColorUtils.blendARGB(color, - dark ? Color.WHITE : Color.BLACK, Helper.MIN_LUMINANCE); + color = ColorUtils.blendARGB(color, dark ? Color.WHITE : Color.BLACK, MIN_LUMINANCE); Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap);