aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/MessageArchiveService.java')
-rw-r--r--src/main/java/de/pixart/messenger/services/MessageArchiveService.java22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
index 64f736c85..c74a71b08 100644
--- a/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
+++ b/src/main/java/de/pixart/messenger/services/MessageArchiveService.java
@@ -67,7 +67,7 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
List<Conversation> conversations = mXmppConnectionService.getConversations();
for (Conversation conversation : conversations) {
if (conversation.getMode() == Conversation.MODE_SINGLE && conversation.getAccount() == account && startCatchup > conversation.getLastMessageTransmitted()) {
- this.query(conversation, startCatchup);
+ this.query(conversation, startCatchup, true);
}
}
query = new Query(account, startCatchup, endCatchup);
@@ -83,11 +83,13 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
if (conversation.getLastMessageTransmitted() < 0 && conversation.countMessages() == 0) {
query(conversation,
0,
- System.currentTimeMillis());
+ System.currentTimeMillis(),
+ true);
} else {
query(conversation,
conversation.getLastMessageTransmitted(),
- System.currentTimeMillis());
+ System.currentTimeMillis(),
+ true);
}
}
@@ -95,19 +97,21 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
if (conversation.getLastMessageTransmitted() < 0 && conversation.countMessages() == 0) {
return query(conversation,
0,
- System.currentTimeMillis());
+ System.currentTimeMillis(),
+ false);
} else {
return query(conversation,
conversation.getLastMessageTransmitted(),
- conversation.getAccount().getXmppConnection().getLastSessionEstablished());
+ conversation.getAccount().getXmppConnection().getLastSessionEstablished(),
+ false);
}
}
- public Query query(final Conversation conversation, long end) {
- return this.query(conversation, conversation.getLastMessageTransmitted(), end);
+ public Query query(final Conversation conversation, long end, boolean allowCatchup) {
+ return this.query(conversation, conversation.getLastMessageTransmitted(), end, allowCatchup);
}
- public Query query(Conversation conversation, long start, long end) {
+ public Query query(Conversation conversation, long start, long end, boolean allowCatchup) {
synchronized (this.queries) {
final Query query;
final long startActual = Math.max(start, mXmppConnectionService.getAutomaticMessageDeletionDate());
@@ -120,7 +124,7 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
this.queries.add(reverseCatchup);
this.execute(reverseCatchup);
}
- query = new Query(conversation, maxCatchup, end);
+ query = new Query(conversation, maxCatchup, end, allowCatchup);
}
if (start > end) {
return null;