diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/services')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/MessageArchiveService.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java index 7158c3b1f..a20c7fc49 100644 --- a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java +++ b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java @@ -323,6 +323,7 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded { private void processPostponed(Query query) { query.account.getAxolotlService().processPostponed(); + query.pendingReceiptRequests.removeAll(query.receiptRequests); Log.d(Config.LOGTAG, query.getAccount().getJid().asBareJid() + ": found " + query.pendingReceiptRequests.size() + " pending receipt requests"); Iterator<ReceiptRequest> iterator = query.pendingReceiptRequests.iterator(); while (iterator.hasNext()) { @@ -359,7 +360,8 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded { } public class Query { - public HashSet<ReceiptRequest> pendingReceiptRequests = new HashSet<>(); + private HashSet<ReceiptRequest> pendingReceiptRequests = new HashSet<>(); + private HashSet<ReceiptRequest> receiptRequests = new HashSet<>(); private int totalCount = 0; private int actualCount = 0; private int actualInThisQuery = 0; @@ -398,11 +400,22 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded { query.totalCount = totalCount; query.actualCount = actualCount; query.pendingReceiptRequests = pendingReceiptRequests; + query.receiptRequests = receiptRequests; query.callback = callback; query.catchup = catchup; return query; } + public void removePendingReceiptRequest(ReceiptRequest receiptRequest) { + if (!this.pendingReceiptRequests.remove(receiptRequest)) { + this.receiptRequests.add(receiptRequest); + } + } + + public void addPendingReceiptRequest(ReceiptRequest receiptRequest) { + this.pendingReceiptRequests.add(receiptRequest); + } + public boolean isLegacy() { if (conversation == null || conversation.getMode() == Conversation.MODE_SINGLE) { return account.getXmppConnection().getFeatures().mamLegacy(); |