From dc9370c32b8061c314d9a0bd54a03ae2b9f7ae7d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 25 Sep 2020 14:46:38 -0300 Subject: [PATCH] Fix false group name and avatar updates. --- .../securesms/profiles/edit/EditProfileViewModel.java | 5 +++-- .../java/org/thoughtcrime/securesms/util/StringUtil.java | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileViewModel.java index 261037362e..221da03ffa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileViewModel.java @@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.util.StringUtil; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; import org.whispersystems.libsignal.util.guava.Optional; +import java.util.Arrays; import java.util.Objects; class EditProfileViewModel extends ViewModel { @@ -121,9 +122,9 @@ class EditProfileViewModel extends ViewModel { repository.uploadProfile(profileName, displayName, - !Objects.equals(oldDisplayName, displayName), + !Objects.equals(StringUtil.stripBidiProtection(oldDisplayName), displayName), newAvatar, - oldAvatar != newAvatar, + !Arrays.equals(oldAvatar, newAvatar), uploadResultConsumer); } 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 64d2064121..953ae88d9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StringUtil.java @@ -181,6 +181,12 @@ public final class StringUtil { .toString(); } + public static @Nullable String stripBidiProtection(@Nullable String text) { + if (text == null) return null; + + return text.replaceAll("[\\u2068\\u2069\\u202c]", ""); + } + /** * Trims a {@link CharSequence} of starting and trailing whitespace. Behavior matches * {@link String#trim()} to preserve expectations around results.