diff options
author | eerielili <lionel@les-miquelots.net> | 2023-10-08 11:51:30 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-08 13:51:30 +0200 |
commit | 86b101900c28a09ebc6bcbf212f9969f70ce51b7 (patch) | |
tree | c21a63b1e14537e010de609017180bcec0465af3 /libdino/src/service/conversation_manager.vala | |
parent | 8cb195a2749b0335c8d5fefc2d4fb78023cffe71 (diff) | |
download | dino-86b101900c28a09ebc6bcbf212f9969f70ce51b7.tar.gz dino-86b101900c28a09ebc6bcbf212f9969f70ce51b7.zip |
Start conversation if closed when receiving an audio or video call (#1485)
* Start conversation if closed when receiving an audio or video call
* Fix starting conversation on new calls, move setting conversation.last_active
---------
Co-authored-by: fiaxh <git@lightrise.org>
Diffstat (limited to 'libdino/src/service/conversation_manager.vala')
-rw-r--r-- | libdino/src/service/conversation_manager.vala | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libdino/src/service/conversation_manager.vala b/libdino/src/service/conversation_manager.vala index 59ccbac4..f966ccc7 100644 --- a/libdino/src/service/conversation_manager.vala +++ b/libdino/src/service/conversation_manager.vala @@ -29,6 +29,8 @@ public class ConversationManager : StreamInteractionModule, Object { stream_interactor.account_removed.connect(on_account_removed); stream_interactor.get_module(MessageProcessor.IDENTITY).received_pipeline.connect(new MessageListener(stream_interactor)); stream_interactor.get_module(MessageProcessor.IDENTITY).message_sent.connect(handle_sent_message); + stream_interactor.get_module(Calls.IDENTITY).call_incoming.connect(handle_new_call); + stream_interactor.get_module(Calls.IDENTITY).call_outgoing.connect(handle_new_call); } public Conversation create_conversation(Jid jid, Account account, Conversation.Type? type = null) { @@ -194,6 +196,11 @@ public class ConversationManager : StreamInteractionModule, Object { } } + private void handle_new_call(Call call, CallState state, Conversation conversation) { + conversation.last_active = call.time; + start_conversation(conversation); + } + private void add_conversation(Conversation conversation) { if (!conversations[conversation.account].has_key(conversation.counterpart)) { conversations[conversation.account][conversation.counterpart] = new ArrayList<Conversation>(Conversation.equals_func); |