From a9009f73e91ba4cf28a54b68533c5c3d5b000145 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 4 Feb 2024 09:48:34 +0100 Subject: [PATCH] Consider monospace font as plain text --- .../java/eu/faircode/email/HtmlHelper.java | 6 ++++++ .../java/eu/faircode/email/StyleHelper.java | 20 +++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 762f1efe21..31c8f78a13 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -894,6 +894,12 @@ public class HtmlHelper { if (!text_font) continue; + if (!TextUtils.isEmpty(value)) { + List faces = StyleHelper.getTypeFaces(value); + if (faces.contains("monospace")) + element.attr("x-plain", "true"); + } + // https://developer.mozilla.org/en-US/docs/Web/CSS/font-family sb.append(key).append(":").append(value).append(";"); break; diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index 17f172d18c..cf5050f5c2 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -1816,14 +1816,7 @@ public class StyleHelper { return new CustomTypefaceSpan(family, getTypeface(family, context)); } - static Typeface getTypeface(String family, Context context) { - if (TextUtils.isEmpty(family)) - return Typeface.DEFAULT; - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - boolean bundled_fonts = prefs.getBoolean("bundled_fonts", true); - boolean narrow_fonts = prefs.getBoolean("narrow_fonts", false); - + static List getTypeFaces(String family) { List faces = new ArrayList<>(); for (String face : family.split(",")) faces.add(face @@ -1831,8 +1824,19 @@ public class StyleHelper { .toLowerCase(Locale.ROOT) .replace("'", "") .replace("\"", "")); + return faces; + } + + static Typeface getTypeface(String family, Context context) { + if (TextUtils.isEmpty(family)) + return Typeface.DEFAULT; + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean bundled_fonts = prefs.getBoolean("bundled_fonts", true); + boolean narrow_fonts = prefs.getBoolean("narrow_fonts", false); try { + List faces = getTypeFaces(family); if (faces.contains("fairemail")) return ResourcesCompat.getFont(context.getApplicationContext(), R.font.fantasy);