From 7b445bc4c7ebc4e56e78fe644425dbd2893a6652 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 16 Sep 2016 11:07:52 +0200 Subject: use history clear date as minimum date for mam --- .../conversations/services/MessageArchiveService.java | 15 ++++++++++++--- .../conversations/services/XmppConnectionService.java | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/services') diff --git a/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java index 06df1b38..a27e6c3e 100644 --- a/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java +++ b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java @@ -45,8 +45,17 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded { } } } - Pair pair = mXmppConnectionService.databaseBackend.getLastMessageReceived(account); - long startCatchup = pair == null ? 0 : pair.first; + final Pair lastMessageReceived = mXmppConnectionService.databaseBackend.getLastMessageReceived(account); + final Pair lastClearDate = mXmppConnectionService.databaseBackend.getLastClearDate(account); + long startCatchup; + final String reference; + if (lastMessageReceived != null && lastMessageReceived.first >= lastClearDate.first) { + startCatchup = lastMessageReceived.first; + reference = lastMessageReceived.second; + } else { + startCatchup = lastClearDate.first; + reference = null; + } long endCatchup = account.getXmppConnection().getLastSessionEstablished(); final Query query; if (startCatchup == 0) { @@ -62,7 +71,7 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded { query = new Query(account, startCatchup, endCatchup); } else { query = new Query(account, startCatchup, endCatchup); - query.reference = pair.second; + query.reference = reference; } this.queries.add(query); this.execute(query); diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 4374b3f6..3bf1e745 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -3340,6 +3340,7 @@ public class XmppConnectionService extends Service { @Override public void run() { databaseBackend.deleteMessagesInConversation(conversation); + databaseBackend.updateConversation(conversation); } }; mDatabaseExecutor.execute(runnable); -- cgit v1.2.3