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.