aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/parser
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-06-15 12:44:29 +0200
committerDaniel Gultsch <daniel@gultsch.de>2016-06-15 12:44:29 +0200
commit5f40a7042dc939be05b54501fdcb949302ad11c2 (patch)
tree792b5d0c0bbe066c27f62bf7216517d2fed9be0c /src/main/java/eu/siacs/conversations/parser
parente0575642b5c3189fd83e411c5ce11bb6c0a43f21 (diff)
delay notification until after pgp decryption
Diffstat (limited to 'src/main/java/eu/siacs/conversations/parser')
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index 86f96c37..1dd8026b 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -342,6 +342,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
final Jid to = packet.getTo();
final Jid from = packet.getFrom();
final String remoteMsgId = packet.getId();
+ boolean notify = false;
if (from == null) {
Log.d(Config.LOGTAG,"no from in: "+packet.toString());
@@ -482,7 +483,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
sendMessageReceipts(account, packet);
}
if (replacedMessage.getEncryption() == Message.ENCRYPTION_PGP) {
- conversation.getAccount().getPgpDecryptionService().decrypt(replacedMessage);
+ conversation.getAccount().getPgpDecryptionService().decrypt(replacedMessage, false);
}
return;
} else {
@@ -505,10 +506,6 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
conversation.add(message);
}
- if (message.getEncryption() == Message.ENCRYPTION_PGP) {
- conversation.getAccount().getPgpDecryptionService().decrypt(message);
- }
-
if (query == null || query.getWith() == null) { //either no mam or catchup
if (status == Message.STATUS_SEND || status == Message.STATUS_SEND_RECEIVED) {
mXmppConnectionService.markRead(conversation);
@@ -517,9 +514,14 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
}
} else {
message.markUnread();
+ notify = true;
}
}
+ if (message.getEncryption() == Message.ENCRYPTION_PGP) {
+ notify = conversation.getAccount().getPgpDecryptionService().decrypt(message, notify);
+ }
+
if (query == null) {
mXmppConnectionService.updateConversationUi();
}
@@ -541,7 +543,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
final HttpConnectionManager manager = this.mXmppConnectionService.getHttpConnectionManager();
if (message.trusted() && message.treatAsDownloadable() != Message.Decision.NEVER && manager.getAutoAcceptFileSize() > 0) {
manager.createNewDownloadConnection(message);
- } else if (!message.isRead()) {
+ } else if (notify) {
if (query == null) {
mXmppConnectionService.getNotificationService().push(message);
} else if (query.getWith() == null) { // mam catchup