aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/parser/MessageParser.java
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2015-12-10 23:05:11 +0100
committerChristian S <christian@pix-art.de>2015-12-12 15:51:28 +0100
commitffe3d42a115e1d2a535c1ced1a65ee9aa975d84c (patch)
tree2ace565459b5ef96eb31ab6e5e6b73d110fd33af /src/main/java/eu/siacs/conversations/parser/MessageParser.java
parent270df3f61596fb2849df97f3c46318242c421819 (diff)
notify on mam catchup messages
Diffstat (limited to 'src/main/java/eu/siacs/conversations/parser/MessageParser.java')
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index 2c536f69d..80886f7ff 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -397,15 +397,21 @@ public class MessageParser extends AbstractParser implements
}
conversation.add(message);
- if (query != null) {
- query.incrementMessageCount();
- } else {
+
+ if (query == null || query.getWith() == null) { //either no mam or catchup
if (status == Message.STATUS_SEND || status == Message.STATUS_SEND_RECEIVED) {
mXmppConnectionService.markRead(conversation);
- account.activateGracePeriod();
+ if (query == null) {
+ account.activateGracePeriod();
+ }
} else {
message.markUnread();
}
+ }
+
+ if (query != null) {
+ query.incrementMessageCount();
+ } else {
mXmppConnectionService.updateConversationUi();
}
@@ -445,7 +451,11 @@ public class MessageParser extends AbstractParser implements
if (message.trusted() && message.treatAsDownloadable() != Message.Decision.NEVER && manager.getAutoAcceptFileSize() > 0) {
manager.createNewDownloadConnection(message);
} else if (!message.isRead()) {
- mXmppConnectionService.getNotificationService().push(message);
+ if (query == null) {
+ mXmppConnectionService.getNotificationService().push(message);
+ } else if (query.getWith() == null) { // mam catchup
+ mXmppConnectionService.getNotificationService().pushFromBacklog(message);
+ }
}
} else { //no body
if (isTypeGroupChat) {