show self messages from other devices as received

This commit is contained in:
Daniel Gultsch 2018-01-27 09:15:02 +01:00
parent e3c46dc926
commit a5256c3e83
1 changed files with 19 additions and 1 deletions

View File

@ -410,12 +410,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);
@ -431,6 +438,17 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
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;