aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/MucOptions.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-11-23 14:04:55 +0100
committerChristian Schneppe <christian@pix-art.de>2018-11-23 14:04:55 +0100
commitdfb0139a6ca303f23e737d513d50e6789e122573 (patch)
tree46d99895f58171ecb97f0708d11e18556a517f41 /src/main/java/de/pixart/messenger/entities/MucOptions.java
parent21b4f2476c8879e7711571a5f1b9bfd0c56fda51 (diff)
fixed race condition that prevented bookmark nick to be used
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/MucOptions.java')
-rw-r--r--src/main/java/de/pixart/messenger/entities/MucOptions.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/MucOptions.java b/src/main/java/de/pixart/messenger/entities/MucOptions.java
index 8291188ae..a630fd0c8 100644
--- a/src/main/java/de/pixart/messenger/entities/MucOptions.java
+++ b/src/main/java/de/pixart/messenger/entities/MucOptions.java
@@ -44,6 +44,7 @@ public class MucOptions {
private Error error = Error.NONE;
private User self;
private String password = null;
+ private boolean tookProposedNickFromBookmark = false;
public MucOptions(Conversation conversation) {
this.account = conversation.getAccount();
this.conversation = conversation;
@@ -96,6 +97,16 @@ public class MucOptions {
}
}
+ public boolean isTookProposedNickFromBookmark() {
+ return tookProposedNickFromBookmark;
+ }
+
+ void notifyOfBookmarkNick(String nick) {
+ if (nick != null && nick.trim().equals(getSelf().getFullJid().getResource())) {
+ this.tookProposedNickFromBookmark = true;
+ }
+ }
+
public boolean mamSupport() {
return MessageArchiveService.Version.has(getFeatures());
}
@@ -375,11 +386,12 @@ public class MucOptions {
}
}
- public String getProposedNick() {
- if (conversation.getBookmark() != null
- && conversation.getBookmark().getNick() != null
- && !conversation.getBookmark().getNick().trim().isEmpty()) {
- return conversation.getBookmark().getNick().trim();
+ private String getProposedNick() {
+ final Bookmark bookmark = this.conversation.getBookmark();
+ final String bookmarkedNick = bookmark == null ? null : bookmark.getNick();
+ if (bookmarkedNick != null && !bookmarkedNick.trim().isEmpty()) {
+ this.tookProposedNickFromBookmark = true;
+ return bookmarkedNick.trim();
} else if (!conversation.getJid().isBareJid()) {
return conversation.getJid().getResource();
} else {