From f58119f25e42da7a21e2c4324b305cc8c5fb6760 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Mon, 23 Dec 2019 21:53:45 +0100 Subject: [PATCH] Don't show own typing notifications (other devices) fixes #669 --- libdino/src/service/counterpart_interaction_manager.vala | 3 +++ main/src/ui/conversation_summary/chat_state_populator.vala | 1 - main/src/ui/conversation_summary/conversation_view.vala | 4 +--- xmpp-vala/src/module/xep/0085_chat_state_notifications.vala | 3 +-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libdino/src/service/counterpart_interaction_manager.vala b/libdino/src/service/counterpart_interaction_manager.vala index e22ecb53..6ee55ae4 100644 --- a/libdino/src/service/counterpart_interaction_manager.vala +++ b/libdino/src/service/counterpart_interaction_manager.vala @@ -48,6 +48,9 @@ public class CounterpartInteractionManager : StreamInteractionModule, Object { } private async void on_chat_state_received(Account account, Jid jid, string state, MessageStanza stanza) { + // Don't show our own (other devices) typing notification + if (jid.equals_bare(account.bare_jid)) return; + Message message = yield stream_interactor.get_module(MessageProcessor.IDENTITY).parse_message_stanza(account, stanza); Conversation? conversation = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversation_for_message(message); if (conversation == null) return; diff --git a/main/src/ui/conversation_summary/chat_state_populator.vala b/main/src/ui/conversation_summary/chat_state_populator.vala index 04eb4a20..5db2a1f6 100644 --- a/main/src/ui/conversation_summary/chat_state_populator.vala +++ b/main/src/ui/conversation_summary/chat_state_populator.vala @@ -80,7 +80,6 @@ class ChatStatePopulator : Plugins.ConversationItemPopulator, Plugins.Conversati meta_item = new MetaChatStateItem(stream_interactor, current_conversation, jid, state_type, jids); item_collection.insert_item(meta_item); } - } } diff --git a/main/src/ui/conversation_summary/conversation_view.vala b/main/src/ui/conversation_summary/conversation_view.vala index 9b90622a..4cde3668 100644 --- a/main/src/ui/conversation_summary/conversation_view.vala +++ b/main/src/ui/conversation_summary/conversation_view.vala @@ -72,6 +72,7 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins firstLoad = false; } stack.set_visible_child_name("void"); + clear(); initialize_for_conversation_(conversation); display_latest(); stack.set_visible_child_name("main"); @@ -136,7 +137,6 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins clear_notifications(); this.conversation = conversation; - // Init for new conversation foreach (Plugins.ConversationItemPopulator populator in app.plugin_registry.conversation_addition_populators) { populator.init(conversation, this, Plugins.WidgetType.GTK); @@ -149,8 +149,6 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins } private void display_latest() { - clear(); - Gee.List items = content_populator.populate_latest(conversation, 40); foreach (ContentMetaItem item in items) { do_insert_item(item); diff --git a/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala b/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala index 5a9b0914..7c1c9172 100644 --- a/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala +++ b/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala @@ -48,8 +48,7 @@ public class Module : XmppStreamModule { if (!message.is_error()) { Gee.List nodes = message.stanza.get_all_subnodes(); foreach (StanzaNode node in nodes) { - if (node.ns_uri == NS_URI && - node.name in STATES) { + if (node.ns_uri == NS_URI && node.name in STATES) { chat_state_received(stream, message.from, node.name, message); } }