kill mam query when archiving conversation
This commit is contained in:
parent
1a1d5c2a3e
commit
03fa58634b
|
@ -301,6 +301,26 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void kill(Conversation conversation) {
|
||||||
|
synchronized (this.queries) {
|
||||||
|
for (Query q : queries) {
|
||||||
|
if (q.conversation == conversation) {
|
||||||
|
kill(q);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void kill(Query query) {
|
||||||
|
Log.d(Config.LOGTAG,query.getAccount().getJid().toBareJid()+": killing mam query prematurely");
|
||||||
|
query.callback = null;
|
||||||
|
this.finalizeQuery(query,false);
|
||||||
|
if (query.isCatchup() && query.getActualMessageCount() > 0) {
|
||||||
|
mXmppConnectionService.getNotificationService().finishBacklog(true,query.getAccount());
|
||||||
|
}
|
||||||
|
this.processPostponed(query);
|
||||||
|
}
|
||||||
|
|
||||||
private void processPostponed(Query query) {
|
private void processPostponed(Query query) {
|
||||||
query.account.getAxolotlService().processPostponed();
|
query.account.getAxolotlService().processPostponed();
|
||||||
Log.d(Config.LOGTAG,query.getAccount().getJid().toBareJid()+": found "+query.pendingReceiptRequests.size()+" pending receipt requests");
|
Log.d(Config.LOGTAG,query.getAccount().getJid().toBareJid()+": found "+query.pendingReceiptRequests.size()+" pending receipt requests");
|
||||||
|
|
|
@ -1794,6 +1794,7 @@ public class XmppConnectionService extends Service {
|
||||||
getNotificationService().clear(conversation);
|
getNotificationService().clear(conversation);
|
||||||
conversation.setStatus(Conversation.STATUS_ARCHIVED);
|
conversation.setStatus(Conversation.STATUS_ARCHIVED);
|
||||||
synchronized (this.conversations) {
|
synchronized (this.conversations) {
|
||||||
|
getMessageArchiveService().kill(conversation);
|
||||||
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||||
if (conversation.getAccount().getStatus() == Account.State.ONLINE) {
|
if (conversation.getAccount().getStatus() == Account.State.ONLINE) {
|
||||||
Bookmark bookmark = conversation.getBookmark();
|
Bookmark bookmark = conversation.getBookmark();
|
||||||
|
|
Loading…
Reference in a new issue