diff options
author | fiaxh <git@mx.ax.lt> | 2018-03-07 20:41:08 +0100 |
---|---|---|
committer | fiaxh <git@mx.ax.lt> | 2018-03-10 20:01:22 +0100 |
commit | c8f68678be021d52a1fbc4efeba890b203123ef1 (patch) | |
tree | 67669e79d458ed35166ff839f38674dc21c14d32 /libdino/src/service/message_processor.vala | |
parent | 81310dff2e712cf7ddbce7c4717cd5a77170c79a (diff) | |
download | dino-c8f68678be021d52a1fbc4efeba890b203123ef1.tar.gz dino-c8f68678be021d52a1fbc4efeba890b203123ef1.zip |
Recognize own MUC messages from other device
Diffstat (limited to 'libdino/src/service/message_processor.vala')
-rw-r--r-- | libdino/src/service/message_processor.vala | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libdino/src/service/message_processor.vala b/libdino/src/service/message_processor.vala index f2f539bb..14db0132 100644 --- a/libdino/src/service/message_processor.vala +++ b/libdino/src/service/message_processor.vala @@ -94,13 +94,17 @@ public class MessageProcessor : StreamInteractionModule, Object { Entities.Message new_message = new Entities.Message(message.body); new_message.account = account; new_message.stanza_id = message.id; - if (!account.bare_jid.equals_bare(message.from) || - message.from.equals(stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(message.from.bare_jid, account))) { - new_message.direction = Entities.Message.DIRECTION_RECEIVED; - } else { + + Jid? counterpart_override = null; + if (message.from.equals(stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(message.from.bare_jid, account))) { new_message.direction = Entities.Message.DIRECTION_SENT; + counterpart_override = message.from.bare_jid; + } else if (account.bare_jid.equals_bare(message.from)) { + new_message.direction = Entities.Message.DIRECTION_SENT; + } else { + new_message.direction = Entities.Message.DIRECTION_RECEIVED; } - new_message.counterpart = new_message.direction == Entities.Message.DIRECTION_SENT ? message.to : message.from; + new_message.counterpart = counterpart_override ?? (new_message.direction == Entities.Message.DIRECTION_SENT ? message.to : message.from); new_message.ourpart = new_message.direction == Entities.Message.DIRECTION_SENT ? message.from : message.to; new_message.stanza = message; |