diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/MucOptions.java | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index eb2963af7..bccf3d009 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -300,17 +300,18 @@ public class MucOptions { } else if (getAffiliation().outranks(another.getAffiliation())) { return -1; } else { - Contact ourContact = getContact(); - Contact anotherContact = another.getContact(); - if (ourContact != null && anotherContact != null) { - return ourContact.compareTo(anotherContact); - } else if (ourContact == null && anotherContact != null) { - return getName().compareToIgnoreCase(anotherContact.getDisplayName()); - } else if (ourContact != null) { - return ourContact.getDisplayName().compareToIgnoreCase(another.getName()); - } else { - return getName().compareToIgnoreCase(another.getName()); - } + return getComparableName().compareToIgnoreCase(another.getComparableName()); + } + } + + + private String getComparableName() { + Contact contact = getContact(); + if (contact != null) { + return contact.getDisplayName(); + } else { + String name = getName(); + return name == null ? "" : name; } } |