From f5a5fb2bd391877ff438e3a3b773df7eb822f02e Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 22 Nov 2017 21:58:38 +0100 Subject: save full jid when sending in muc. check chat markers against 'sender' --- src/main/java/de/pixart/messenger/parser/MessageParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/pixart/messenger/parser') diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java index d5003dc11..f3be9651f 100644 --- a/src/main/java/de/pixart/messenger/parser/MessageParser.java +++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java @@ -688,6 +688,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece Element displayed = packet.findChild("displayed", "urn:xmpp:chat-markers:0"); if (displayed != null) { final String id = displayed.getAttribute("id"); + final Jid sender = displayed.getAttributeAsJid("sender"); if (packet.fromAccount(account)) { Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); if (conversation != null && (query == null || query.isCatchup())) { @@ -695,8 +696,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } } else if (isTypeGroupChat) { Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); - if (conversation != null && id != null) { - Message message = conversation.findMessageWithRemoteId(id); + if (conversation != null && id != null && sender != null) { + Message message = conversation.findMessageWithRemoteId(id, sender); if (message != null) { if (conversation.getMucOptions().isSelf(counterpart)) { if (!message.isRead() && (query == null || query.isCatchup())) { //checking if message is unread fixes race conditions with reflections -- cgit v1.2.3