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

View file

@ -410,12 +410,19 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
} }
boolean isProperlyAddressed = (to != null) && (!to.isBareJid() || account.countPresences() == 0); boolean isProperlyAddressed = (to != null) && (!to.isBareJid() || account.countPresences() == 0);
boolean isMucStatusMessage = from.isBareJid() && mucUserElement != null && mucUserElement.hasChild("status"); boolean isMucStatusMessage = from.isBareJid() && mucUserElement != null && mucUserElement.hasChild("status");
boolean selfAddressed;
if (packet.fromAccount(account)) { if (packet.fromAccount(account)) {
status = Message.STATUS_SEND; 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 { } else {
status = Message.STATUS_RECEIVED; status = Message.STATUS_RECEIVED;
counterpart = from; counterpart = from;
selfAddressed = false;
} }
Invite invite = extractInvite(account, packet); Invite invite = extractInvite(account, packet);
@ -431,6 +438,17 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
serverMsgId = extractStanzaId(packet, isTypeGroupChat, conversation); 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 (isTypeGroupChat) {
if (conversation.getMucOptions().isSelf(counterpart)) { if (conversation.getMucOptions().isSelf(counterpart)) {
status = Message.STATUS_SEND_RECEIVED; status = Message.STATUS_SEND_RECEIVED;