From 10e4be7c4c19a88acd36649fb61ed578d3652adb Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 10 May 2017 20:25:46 +0200 Subject: set catchup flag on mam only when doing that --- .../messenger/services/MessageArchiveService.java | 22 +++++++++++++--------- .../messenger/services/NotificationService.java | 1 - .../messenger/services/XmppConnectionService.java | 4 ++-- .../messenger/ui/adapter/MessageAdapter.java | 2 +- 4 files changed, 16 insertions(+), 13 deletions(-) (limited to 'src/main/java/de/pixart/messenger') 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 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; diff --git a/src/main/java/de/pixart/messenger/services/NotificationService.java b/src/main/java/de/pixart/messenger/services/NotificationService.java index 460779a60..edc93d7b7 100644 --- a/src/main/java/de/pixart/messenger/services/NotificationService.java +++ b/src/main/java/de/pixart/messenger/services/NotificationService.java @@ -256,7 +256,6 @@ public class NotificationService { } public void updateNotification(final boolean notify) { - Log.d(Config.LOGTAG, "updateNotification(" + Boolean.toString(notify) + ")"); final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mXmppConnectionService); final SharedPreferences preferences = mXmppConnectionService.getPreferences(); diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index d598bcc4e..7bbc9aa78 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -1757,7 +1757,7 @@ public class XmppConnectionService extends Service { && conversation.getLastClearHistory() == 0) { if ((conversation.getMode() == Conversation.MODE_SINGLE && account.getXmppConnection().getFeatures().mam()) || (conversation.getMode() == Conversation.MODE_MULTI && conversation.getMucOptions().mamSupport())) { - MessageArchiveService.Query query = getMessageArchiveService().query(conversation, 0, timestamp); + MessageArchiveService.Query query = getMessageArchiveService().query(conversation, 0, timestamp, false); if (query != null) { query.setCallback(callback); callback.informUser(R.string.fetching_history_from_server); @@ -1870,7 +1870,7 @@ public class XmppConnectionService extends Service { mMessageArchiveService.query(c); } else { if (query.getConversation() == null) { - mMessageArchiveService.query(c, query.getStart()); + mMessageArchiveService.query(c, query.getStart(), query.isCatchup()); } } } diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index 791a8ed51..a2c837ea0 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -754,7 +754,7 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie timestamp = System.currentTimeMillis(); } conversation.messagesLoaded.set(true); - MessageArchiveService.Query query = activity.xmppConnectionService.getMessageArchiveService().query(conversation, 0, timestamp); + MessageArchiveService.Query query = activity.xmppConnectionService.getMessageArchiveService().query(conversation, 0, timestamp, false); if (query != null) { Toast.makeText(activity, R.string.fetching_history_from_server, Toast.LENGTH_LONG).show(); } else { -- cgit v1.2.3