Fix delivery error displaying for MUC PMs

fixes #1113
This commit is contained in:
fiaxh 2022-01-01 19:47:46 +01:00
parent 839be0e316
commit 6b8ad7a104

View file

@ -144,9 +144,13 @@ public class MessageProcessor : StreamInteractionModule, Object {
} }
}); });
stream_interactor.module_manager.get_module(account, Xmpp.MessageModule.IDENTITY).received_error.connect((stream, message_stanza, error_stanza) => { stream_interactor.module_manager.get_module(account, Xmpp.MessageModule.IDENTITY).received_error.connect((stream, message_stanza, error_stanza) => {
Conversation? conversation = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversation(message_stanza.from.bare_jid, account); Message? message = null;
if (conversation == null) return;
Message? message = stream_interactor.get_module(MessageStorage.IDENTITY).get_message_by_stanza_id(message_stanza.id, conversation); Gee.List<Conversation> conversations = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversations(message_stanza.from, account);
foreach (Conversation conversation in conversations) {
message = stream_interactor.get_module(MessageStorage.IDENTITY).get_message_by_stanza_id(message_stanza.id, conversation);
if (message != null) break;
}
if (message == null) return; if (message == null) return;
// We don't care about delivery errors if our counterpart already ACKed the message. // We don't care about delivery errors if our counterpart already ACKed the message.
if (message.marked in Message.MARKED_RECEIVED) return; if (message.marked in Message.MARKED_RECEIVED) return;