diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java index 4979af5de7..33005b1edf 100644 --- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java +++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java @@ -741,7 +741,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (packet.fromAccount(account)) { Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); if (conversation != null && (query == null || query.isCatchup())) { - mXmppConnectionService.markRead(conversation); + mXmppConnectionService.markRead(conversation); //TODO only mark messages read that are older than timestamp } } else if (isTypeGroupChat) { Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); diff --git a/src/main/java/eu/siacs/conversations/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java index 408d7f71ca..00738fa1c4 100644 --- a/src/main/java/eu/siacs/conversations/services/NotificationService.java +++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java @@ -225,8 +225,10 @@ public class NotificationService { } synchronized (notifications) { markAsReadIfHasDirectReply(conversation); + //TODO: only update if something actually got removed? notifications.remove(conversation.getUuid()); final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mXmppConnectionService); + //TODO on later androids (that have multiple Conversations) maybe canceling is enough + update summary notification notificationManager.cancel(conversation.getUuid(), NOTIFICATION_ID); updateNotification(false); }