From db93aeacc0e69580f7a584f3d4561cf6a08a47e8 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Fri, 23 Jan 2026 22:05:41 +0100 Subject: [PATCH] fix event listener in ConversationActivity --- .../securesms/ConversationActivity.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index ca140a2bd..d8ce5e03d 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -245,17 +245,23 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } }); + setDcEventListener(); + handleRelaying(); + } + + private setDcEventListener() { DcEventCenter eventCenter = DcHelper.getEventCenter(this); - eventCenter.addObserver(DcContext.DC_EVENT_CHAT_MODIFIED, this); - eventCenter.addObserver(DcContext.DC_EVENT_CHAT_EPHEMERAL_TIMER_MODIFIED, this); - eventCenter.addObserver(DcContext.DC_EVENT_CONTACTS_CHANGED, this); + // first cleanup in case it was already registered for other chat + eventCenter.removeObservers(this); + + eventCenter.addMultiAccountObserver(DcContext.DC_EVENT_CHAT_MODIFIED, this); + eventCenter.addMultiAccountObserver(DcContext.DC_EVENT_CHAT_EPHEMERAL_TIMER_MODIFIED, this); + eventCenter.addMultiAccountObserver(DcContext.DC_EVENT_CONTACTS_CHANGED, this); if (!isMultiUser()) { - eventCenter.addObserver(DcContext.DC_EVENT_INCOMING_MSG, this); - eventCenter.addObserver(DcContext.DC_EVENT_MSG_READ, this); + eventCenter.addMultiAccountObserver(DcContext.DC_EVENT_INCOMING_MSG, this); + eventCenter.addMultiAccountObserver(DcContext.DC_EVENT_MSG_READ, this); } - - handleRelaying(); } @Override @@ -281,6 +287,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } }); + setDcEventListener(); // reset event listener handleRelaying(); if (fragment != null) {