mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 07:38:33 +00:00
Sort contacts without names after contacts with names.
This commit is contained in:
parent
dc70bfabaf
commit
a3aed96757
@ -27,12 +27,14 @@ import java.util.List;
|
|||||||
|
|
||||||
public final class LiveGroup {
|
public final class LiveGroup {
|
||||||
|
|
||||||
private static final Comparator<GroupMemberEntry.FullMember> LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isLocalNumber(), m1.getMember().isLocalNumber());
|
private static final Comparator<GroupMemberEntry.FullMember> LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isLocalNumber(), m1.getMember().isLocalNumber());
|
||||||
private static final Comparator<GroupMemberEntry.FullMember> ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin());
|
private static final Comparator<GroupMemberEntry.FullMember> ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin());
|
||||||
private static final Comparator<GroupMemberEntry.FullMember> ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(ApplicationDependencies.getApplication()));
|
private static final Comparator<GroupMemberEntry.FullMember> HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()));
|
||||||
private static final Comparator<? super GroupMemberEntry.FullMember> MEMBER_ORDER = ComparatorCompat.chain(LOCAL_FIRST)
|
private static final Comparator<GroupMemberEntry.FullMember> ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(ApplicationDependencies.getApplication()));
|
||||||
.thenComparing(ADMIN_FIRST)
|
private static final Comparator<? super GroupMemberEntry.FullMember> MEMBER_ORDER = ComparatorCompat.chain(LOCAL_FIRST)
|
||||||
.thenComparing(ALPHABETICAL);
|
.thenComparing(ADMIN_FIRST)
|
||||||
|
.thenComparing(HAS_DISPLAY_NAME)
|
||||||
|
.thenComparing(ALPHABETICAL);
|
||||||
|
|
||||||
private final GroupDatabase groupDatabase;
|
private final GroupDatabase groupDatabase;
|
||||||
private final LiveData<Recipient> recipient;
|
private final LiveData<Recipient> recipient;
|
||||||
|
@ -418,6 +418,15 @@ public class Recipient {
|
|||||||
else return Optional.fromNullable(getName(context)).or(getSmsAddress()).or("");
|
else return Optional.fromNullable(getName(context)).or(getSmsAddress()).or("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* False iff it {@link #getDisplayName} would fall back to e164, email or unknown.
|
||||||
|
*/
|
||||||
|
public boolean hasAUserSetDisplayName(@NonNull Context context) {
|
||||||
|
return !TextUtils.isEmpty(getName(context)) ||
|
||||||
|
!TextUtils.isEmpty(getProfileName().toString()) ||
|
||||||
|
!TextUtils.isEmpty(getDisplayUsername());
|
||||||
|
}
|
||||||
|
|
||||||
public @NonNull String getDisplayName(@NonNull Context context) {
|
public @NonNull String getDisplayName(@NonNull Context context) {
|
||||||
return Util.getFirstNonEmpty(getName(context),
|
return Util.getFirstNonEmpty(getName(context),
|
||||||
getProfileName().toString(),
|
getProfileName().toString(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user