aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/services')
-rw-r--r--src/main/java/de/pixart/messenger/services/MessageArchiveService.java17
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java4
2 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
index fb8f4d1c4..4748dc86d 100644
--- a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
+++ b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
@@ -45,9 +45,18 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
}
}
}
- Pair<Long,String> pair = mXmppConnectionService.databaseBackend.getLastMessageReceived(account);
- long startCatchup = pair == null ? 0 : pair.first;
- long endCatchup = account.getXmppConnection().getLastSessionEstablished();
+ 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) {
return;
@@ -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/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index 6be77bf9a..879fee405 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -3427,7 +3427,9 @@ public class XmppConnectionService extends Service {
@Override
public void run() {
databaseBackend.deleteMessagesInConversation(conversation);
- }
+ databaseBackend.updateConversation(conversation);
+
+ }
};
mDatabaseExecutor.execute(runnable);
}