aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/XmppConnectionService.java')
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index e65c0bb64..a1932ce1e 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -1489,10 +1489,8 @@ public class XmppConnectionService extends Service {
if (conversation != null) {
conversation.setBookmark(bookmark);
} else if (bookmark.autojoin() && bookmark.getJid() != null && autojoin) {
- conversation = findOrCreateConversation(
- account, bookmark.getJid(), true);
+ conversation = findOrCreateConversation(account, bookmark.getJid(), true, true);
conversation.setBookmark(bookmark);
- joinMuc(conversation);
}
}
}
@@ -1758,11 +1756,15 @@ public class XmppConnectionService extends Service {
return null;
}
- public Conversation findOrCreateConversation(final Account account, final Jid jid, final boolean muc) {
- return this.findOrCreateConversation(account, jid, muc, null);
+ public Conversation findOrCreateConversation(Account account, Jid jid, boolean muc) {
+ return this.findOrCreateConversation(account, jid, muc, false);
}
- public Conversation findOrCreateConversation(final Account account, final Jid jid, final boolean muc, final MessageArchiveService.Query query) {
+ public Conversation findOrCreateConversation(final Account account, final Jid jid, final boolean muc, final boolean joinAfterCreate) {
+ return this.findOrCreateConversation(account, jid, muc, joinAfterCreate, null);
+ }
+
+ public Conversation findOrCreateConversation(final Account account, final Jid jid, final boolean muc, final boolean joinAfterCreate, final MessageArchiveService.Query query) {
synchronized (this.conversations) {
Conversation conversation = find(account, jid);
if (conversation != null) {
@@ -1821,6 +1823,9 @@ public class XmppConnectionService extends Service {
}
}
checkDeletedFiles(c);
+ if (joinAfterCreate) {
+ joinMuc(c);
+ }
}
});
this.conversations.add(conversation);
@@ -2519,7 +2524,7 @@ public class XmppConnectionService extends Service {
return false;
}
final Jid jid = Jid.fromParts(new BigInteger(64, getRNG()).toString(Character.MAX_RADIX), server, null);
- final Conversation conversation = findOrCreateConversation(account, jid, true);
+ final Conversation conversation = findOrCreateConversation(account, jid, true, false);
joinMuc(conversation, new OnConferenceJoined() {
@Override
public void onConferenceJoined(final Conversation conversation) {