diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-09-16 11:07:52 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2016-09-16 11:07:52 +0200 |
commit | 7b445bc4c7ebc4e56e78fe644425dbd2893a6652 (patch) | |
tree | abb7247dbc25aaaa5f51eedc8329b35756b806e6 /src/main/java/eu/siacs/conversations/services/MessageArchiveService.java | |
parent | ab63dba8aab2d4ea68208dcade1a7528541f7c60 (diff) |
use history clear date as minimum date for mam
Diffstat (limited to 'src/main/java/eu/siacs/conversations/services/MessageArchiveService.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/services/MessageArchiveService.java | 15 |
1 files changed, 12 insertions, 3 deletions
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<Long,String> pair = mXmppConnectionService.databaseBackend.getLastMessageReceived(account); - long startCatchup = pair == null ? 0 : pair.first; + final Pair<Long,String> lastMessageReceived = mXmppConnectionService.databaseBackend.getLastMessageReceived(account); + final Pair<Long,String> 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); |