diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java b/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java index 16e522b1be..2488182b2e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java @@ -30,6 +30,7 @@ import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; import org.signal.core.models.ServiceId; +import java.text.Collator; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -37,10 +38,11 @@ import java.util.Set; public final class LiveGroup { + private static final Collator collator = Collator.getInstance(); private static final Comparator LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isSelf(), m1.getMember().isSelf()); private static final Comparator ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin()); private static final Comparator HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(AppDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(AppDependencies.getApplication())); - private static final Comparator ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(AppDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(AppDependencies.getApplication())); + private static final Comparator ALPHABETICAL = (m1, m2) -> collator.compare(m1.getMember().getDisplayName(AppDependencies.getApplication()).toLowerCase(), m2.getMember().getDisplayName(AppDependencies.getApplication()).toLowerCase()); private static final Comparator MEMBER_ORDER = ComparatorCompat.chain(LOCAL_FIRST) .thenComparing(ADMIN_FIRST) .thenComparing(HAS_DISPLAY_NAME) @@ -63,6 +65,8 @@ public final class LiveGroup { this.fullMembers = mapToFullMembers(this.groupRecord); this.requestingMembers = mapToRequestingMembers(this.groupRecord); + collator.setStrength(Collator.PRIMARY); + if (groupId.isV2()) { LiveData v2Properties = Transformations.map(this.groupRecord, GroupRecord::requireV2GroupProperties); this.groupLink = Transformations.map(v2Properties, g -> {