diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Conversation.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java index 81c3c1d95..4729eb976 100644 --- a/src/main/java/de/pixart/messenger/entities/Conversation.java +++ b/src/main/java/de/pixart/messenger/entities/Conversation.java @@ -60,7 +60,6 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl private static final String ATTRIBUTE_NEXT_MESSAGE_TIMESTAMP = "next_message_timestamp"; private static final String ATTRIBUTE_CRYPTO_TARGETS = "crypto_targets"; private static final String ATTRIBUTE_NEXT_ENCRYPTION = "next_encryption"; - public static final String ATTRIBUTE_ALLOW_PM = "allow_pm"; public static final String ATTRIBUTE_MEMBERS_ONLY = "members_only"; public static final String ATTRIBUTE_MODERATED = "moderated"; public static final String ATTRIBUTE_NON_ANONYMOUS = "non_anonymous"; @@ -509,10 +508,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public @NonNull CharSequence getName() { if (getMode() == MODE_MULTI) { + final String roomName = getMucOptions().getName(); final String subject = getMucOptions().getSubject(); final Bookmark bookmark = getBookmark(); final String bookmarkName = bookmark != null ? bookmark.getBookmarkName() : null; - if (printableValue(subject)) { + if (printableValue(roomName)) { + return roomName; + } else if (printableValue(subject)) { return subject; } else if (printableValue(bookmarkName, false)) { return bookmarkName; @@ -910,10 +912,20 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public boolean setAttribute(String key, String value) { synchronized (this.attributes) { try { - this.attributes.put(key, value == null ? "" : value); - return true; + if (value == null) { + if (this.attributes.has(key)) { + this.attributes.remove(key); + return true; + } else { + return false; + } + } else { + String prev = this.attributes.getString(key); + this.attributes.put(key, value); + return !value.equals(prev); + } } catch (JSONException e) { - return false; + throw new AssertionError(e); } } } |