diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-02-22 19:52:34 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-02-22 20:49:03 +0100 |
commit | 72ce4b07c1bd53b1842f213925c9c1f6d5a99003 (patch) | |
tree | a4b1e2e142c7f96fc9c561559736755518a37ad3 /src/main/java/de/pixart/messenger/services/XmppConnectionService.java | |
parent | b7f933051498df20772ba4a00f05feb1972343a6 (diff) |
rethink mam catchup strategies
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 19 |
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) { |