From ced57e3f3dd6b8d952f4b9d89ea6d10b16e1441a Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 27 Jan 2018 21:56:32 +0100 Subject: show self messages from other devices as received --- .../java/de/pixart/messenger/parser/MessageParser.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/main/java/de/pixart/messenger') diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java index d2b59077e..bbc9d05bb 100644 --- a/src/main/java/de/pixart/messenger/parser/MessageParser.java +++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java @@ -409,12 +409,19 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } boolean isProperlyAddressed = (to != null) && (!to.isBareJid() || account.countPresences() == 0); boolean isMucStatusMessage = from.isBareJid() && mucUserElement != null && mucUserElement.hasChild("status"); + boolean selfAddressed; if (packet.fromAccount(account)) { status = Message.STATUS_SEND; - counterpart = to != null ? to : account.getJid(); + selfAddressed = to == null || account.getJid().toBareJid().equals(to.toBareJid()); + if (selfAddressed) { + counterpart = from; + } else { + counterpart = to != null ? to : account.getJid(); + } } else { status = Message.STATUS_RECEIVED; counterpart = from; + selfAddressed = false; } Invite invite = extractInvite(account, packet); @@ -428,6 +435,15 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (serverMsgId == null) { serverMsgId = extractStanzaId(packet, isTypeGroupChat, conversation); } + if (selfAddressed) { + if (mXmppConnectionService.markMessage(conversation, remoteMsgId, Message.STATUS_SEND_RECEIVED, serverMsgId)) { + return; + } + status = Message.STATUS_RECEIVED; + if (conversation.findMessageWithRemoteId(remoteMsgId, counterpart) != null) { + return; + } + } if (isTypeGroupChat) { if (conversation.getMucOptions().isSelf(counterpart)) { status = Message.STATUS_SEND_RECEIVED; -- cgit v1.2.3