From c9c18b91d78e398753ea003f48b4e5cfb24cb86a Mon Sep 17 00:00:00 2001 From: elena Date: Sat, 12 Feb 2022 21:46:55 +0000 Subject: [PATCH] Fix incorrectly identifying CharSequence as having mixedTextDirection --- .../org/thoughtcrime/securesms/util/StringUtil.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java index bb52699cda..328e078f57 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java @@ -179,14 +179,15 @@ public final class StringUtil { Boolean isLtr = null; for (int i = 0, len = Character.codePointCount(text, 0, text.length()); i < len; i++) { - int codePoint = Character.codePointAt(text, i); - byte direction = Character.getDirectionality(codePoint); + int codePoint = Character.codePointAt(text, i); + byte direction = Character.getDirectionality(codePoint); + boolean isLetter = Character.isLetter(codePoint); - if (isLtr != null && isLtr && direction != Character.DIRECTIONALITY_LEFT_TO_RIGHT) { + if (isLtr != null && isLtr && direction != Character.DIRECTIONALITY_LEFT_TO_RIGHT && isLetter) { return true; - } else if (isLtr != null && !isLtr && direction != Character.DIRECTIONALITY_RIGHT_TO_LEFT) { + } else if (isLtr != null && !isLtr && direction != Character.DIRECTIONALITY_RIGHT_TO_LEFT && isLetter) { return true; - } else { + } else if (isLetter) { isLtr = direction == Character.DIRECTIONALITY_LEFT_TO_RIGHT; } }