From e147b3f5e9b83b7cd4a8d5c0c4acbc14cf711ad8 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Wed, 30 Jun 2021 10:45:31 +1000 Subject: [PATCH] React to mute & block status changes --- .../conversation/v2/ConversationActivityV2.kt | 16 ++++++++++++++-- .../v2/menus/ConversationMenuHelper.kt | 2 -- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index a16970e6c1..2ed15d27f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -57,6 +57,7 @@ import org.session.libsession.utilities.Address.Companion.fromSerialized import org.session.libsession.utilities.MediaTypes import org.session.libsession.utilities.TextSecurePreferences import org.session.libsession.utilities.recipients.Recipient +import org.session.libsession.utilities.recipients.RecipientModifiedListener import org.session.libsignal.utilities.ListenableFuture import org.session.libsignal.utilities.ThreadUtils import org.thoughtcrime.securesms.ApplicationContext @@ -108,7 +109,7 @@ import kotlin.math.* class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDelegate, InputBarRecordingViewDelegate, AttachmentManager.AttachmentListener, ActivityDispatcher, - ConversationActionModeCallbackDelegate, VisibleMessageContentViewDelegate { + ConversationActionModeCallbackDelegate, VisibleMessageContentViewDelegate, RecipientModifiedListener { private val screenWidth = Resources.getSystem().displayMetrics.widthPixels private var linkPreviewViewModel: LinkPreviewViewModel? = null private var threadID: Long = -1 @@ -187,6 +188,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe unreadCount = DatabaseFactory.getMmsSmsDatabase(this).getUnreadCount(threadID) updateUnreadCountIndicator() setUpTypingObserver() + setUpRecipientObserver() updateSubtitle() getLatestOpenGroupInfoIfNeeded() setUpBlockedBanner() @@ -314,6 +316,10 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe } } + private fun setUpRecipientObserver() { + thread.addListener(this) + } + private fun getLatestOpenGroupInfoIfNeeded() { val openGroup = DatabaseFactory.getLokiThreadDatabase(this).getOpenGroupChat(threadID) ?: return OpenGroupAPIV2.getMemberCount(openGroup.room, openGroup.server).successUi { updateSubtitle() } @@ -367,7 +373,13 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe } // endregion - // region Updating & Animation + override fun onModified(recipient: Recipient) { + if (thread.isContactRecipient) { + blockedBanner.isVisible = thread.isBlocked + } + updateSubtitle() + } + private fun markAllAsRead() { val messages = DatabaseFactory.getThreadDatabase(this).setRead(threadID, true) if (thread.isGroupRecipient) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt index cbac59c280..1b1ec63d0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt @@ -274,13 +274,11 @@ object ConversationMenuHelper { } private fun unmute(context: Context, thread: Recipient) { - thread.setMuted(0) DatabaseFactory.getRecipientDatabase(context).setMuted(thread, 0) } private fun mute(context: Context, thread: Recipient) { MuteDialog.show(context) { until: Long -> - thread.setMuted(until) DatabaseFactory.getRecipientDatabase(context).setMuted(thread, until) } }