aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Conversation.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Conversation.java22
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);
}
}
}