From 4a216a719ad1ab89d4e59fbd43e128c711333b28 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 29 Apr 2021 17:26:02 +0200 Subject: [PATCH] Simplify text direction --- .../main/java/eu/faircode/email/Helper.java | 25 ------------------- .../java/eu/faircode/email/HtmlHelper.java | 3 ++- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index bbbcc7a267..666df48cfe 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -957,31 +957,6 @@ public class Helper { } // https://issuetracker.google.com/issues/37054851 - static boolean isRtl(String text) { - if (TextUtils.isEmpty(text)) - return false; - - int rtl = 0; - int ltr = 0; - for (int i = 0; i < text.length(); i++) - switch (Character.getDirectionality(text.charAt(i))) { - case java.lang.Character.DIRECTIONALITY_RIGHT_TO_LEFT: - case java.lang.Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: - case java.lang.Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING: - case java.lang.Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE: - rtl++; - break; - - case java.lang.Character.DIRECTIONALITY_LEFT_TO_RIGHT: - case java.lang.Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING: - case java.lang.Character.DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE: - ltr++; - break; - } - - return (rtl > ltr); - } - static DateFormat getTimeInstance(Context context) { return getTimeInstance(context, SimpleDateFormat.MEDIUM); } diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 15bab109bd..f69257b616 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -36,6 +36,7 @@ import android.text.Layout; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.TextDirectionHeuristics; import android.text.TextPaint; import android.text.TextUtils; import android.text.style.AlignmentSpan; @@ -2260,7 +2261,7 @@ public class HtmlHelper { case "text-align": // https://developer.mozilla.org/en-US/docs/Web/CSS/text-align Layout.Alignment alignment = null; - boolean rtl = Helper.isRtl(ssb.subSequence(start, ssb.length()).toString()); + boolean rtl = TextDirectionHeuristics.FIRSTSTRONG_LTR.isRtl(ssb, start, ssb.length() - start); switch (value) { case "left": case "start":