diff options
author | fiaxh <git@lightrise.org> | 2020-04-14 16:28:36 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2020-04-14 16:33:53 +0200 |
commit | 13d3d2aca6f5975bbf16ba56b7cd0c4e2008e936 (patch) | |
tree | a599f27e9cba3b440bfea3ade052bee9842daa14 /libdino/src/service/message_correction.vala | |
parent | fbd70ceaac5ebbddfa21a580c61165bf5b861303 (diff) | |
download | dino-13d3d2aca6f5975bbf16ba56b7cd0c4e2008e936.tar.gz dino-13d3d2aca6f5975bbf16ba56b7cd0c4e2008e936.zip |
Handle unknown own MUC jid better
Diffstat (limited to 'libdino/src/service/message_correction.vala')
-rw-r--r-- | libdino/src/service/message_correction.vala | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libdino/src/service/message_correction.vala b/libdino/src/service/message_correction.vala index e38fd251..eb0b9287 100644 --- a/libdino/src/service/message_correction.vala +++ b/libdino/src/service/message_correction.vala @@ -68,17 +68,22 @@ public class MessageCorrection : StreamInteractionModule, MessageListener { public bool is_own_correction_allowed(Conversation conversation, Message message) { string stanza_id = message.edit_to ?? message.stanza_id; - Jid own_jid = conversation.account.full_jid; - if (conversation.type_ == Conversation.Type.GROUPCHAT) { + Jid? own_jid = null; + if (conversation.type_ == Conversation.Type.CHAT) { + own_jid = conversation.account.full_jid; + } else if (conversation.type_ == Conversation.Type.GROUPCHAT) { own_jid = stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(conversation.counterpart, conversation.account); } + + if (own_jid == null) return false; + return last_messages.has_key(conversation) && last_messages[conversation].has_key(own_jid) && last_messages[conversation][own_jid].stanza_id == stanza_id; } private void check_add_correction_node(Entities.Message message, Xmpp.MessageStanza message_stanza, Conversation conversation) { - if (message.stanza_id in outstanding_correction_nodes) { + if (outstanding_correction_nodes.has_key(message.stanza_id)) { LastMessageCorrection.set_replace_id(message_stanza, outstanding_correction_nodes[message.stanza_id]); outstanding_correction_nodes.unset(message.stanza_id); } else { |