diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-11-23 14:04:55 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-11-23 14:04:55 +0100 |
commit | dfb0139a6ca303f23e737d513d50e6789e122573 (patch) | |
tree | 46d99895f58171ecb97f0708d11e18556a517f41 /src/main/java/de/pixart/messenger/entities/MucOptions.java | |
parent | 21b4f2476c8879e7711571a5f1b9bfd0c56fda51 (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.java | 22 |
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 { |