From 9fbb7683bcb80feb818956cbbd38a8ea95000ced Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 27 Feb 2026 23:35:37 -0400 Subject: [PATCH] Fix RTL text direction not enforced when text starts with LTR characters. Co-authored-by: Greyson Parrelli --- .../securesms/components/emoji/EmojiTextView.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java index af8c7fb00d..a0cb24981a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java @@ -135,7 +135,17 @@ public class EmojiTextView extends AppCompatTextView { spoilerRendererDelegate = new SpoilerRendererDelegate(this); } - textDirection = getLayoutDirection() == LAYOUT_DIRECTION_LTR ? TextDirectionHeuristics.FIRSTSTRONG_RTL : TextDirectionHeuristics.ANYRTL_LTR; + if (getLayoutDirection() == LAYOUT_DIRECTION_LTR) { + textDirection = TextDirectionHeuristics.FIRSTSTRONG_RTL; + if (getTextDirection() == TEXT_DIRECTION_INHERIT) { + setTextDirection(TEXT_DIRECTION_FIRST_STRONG_RTL); + } + } else { + textDirection = TextDirectionHeuristics.ANYRTL_LTR; + if (getTextDirection() == TEXT_DIRECTION_INHERIT) { + setTextDirection(TEXT_DIRECTION_ANY_RTL); + } + } setEmojiCompatEnabled(useSystemEmoji()); }