From ccd405fdce5f3d0a3f934e9ac02a4f0e33c9ed10 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 17 Dec 2020 11:53:58 -0500 Subject: [PATCH] Don't double-isolate-bidi on phone numbers. Fixes #10257 --- .../securesms/recipients/Recipient.java | 18 ++++++++++-------- .../securesms/util/StringUtil.java | 8 ++++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java index 0ff638c57e..4ad934c918 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java @@ -441,7 +441,7 @@ public class Recipient { String name = getName(context); if (Util.isEmpty(name)) { - name = getProfileName().toString(); + name = StringUtil.isolateBidi(getProfileName().toString()); } if (Util.isEmpty(name) && !Util.isEmpty(e164)) { @@ -449,25 +449,27 @@ public class Recipient { } if (Util.isEmpty(name)) { - name = email; + name = StringUtil.isolateBidi(email); } if (Util.isEmpty(name)) { - name = username; + name = StringUtil.isolateBidi(username); } if (Util.isEmpty(name)) { - name = context.getString(R.string.Recipient_unknown); + name = StringUtil.isolateBidi(context.getString(R.string.Recipient_unknown)); } - return StringUtil.isolateBidi(name); + return name; } public @NonNull String getMentionDisplayName(@NonNull Context context) { String name = isSelf ? getProfileName().toString() : getName(context); + name = StringUtil.isolateBidi(name); if (Util.isEmpty(name)) { name = isSelf ? getName(context) : getProfileName().toString(); + name = StringUtil.isolateBidi(name); } if (Util.isEmpty(name) && !Util.isEmpty(e164)) { @@ -475,14 +477,14 @@ public class Recipient { } if (Util.isEmpty(name)) { - name = email; + name = StringUtil.isolateBidi(email); } if (Util.isEmpty(name)) { - name = context.getString(R.string.Recipient_unknown); + name = StringUtil.isolateBidi(context.getString(R.string.Recipient_unknown)); } - return StringUtil.isolateBidi(name); + return name; } public @NonNull String getShortDisplayName(@NonNull Context context) { 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 d36fba0921..395379da20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java @@ -160,8 +160,12 @@ public final class StringUtil { * For more details, see: * https://www.w3.org/International/questions/qa-bidi-unicode-controls */ - public static @NonNull String isolateBidi(@NonNull String text) { - if (text.isEmpty()) { + public static @NonNull String isolateBidi(@Nullable String text) { + if (text == null) { + return ""; + } + + if (Util.isEmpty(text)) { return text; }