From fde6d7921eaaaeeb61361f75ea4a40018c962b96 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 14 Aug 2023 14:16:51 -0300 Subject: [PATCH] Bounce message request state update if needed. --- .../conversation/v2/ConversationFragment.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 2c6c6e8e9b..efd80f4d25 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -828,7 +828,7 @@ class ConversationFragment : .conversationThreadState .subscribeOn(Schedulers.io()) .doOnSuccess { state -> - adapter.setMessageRequestIsAccepted(state.meta.messageRequestData.isMessageRequestAccepted) + updateMessageRequestAcceptedState(state.meta.messageRequestData.isMessageRequestAccepted) SignalLocalMetrics.ConversationOpen.onDataLoaded() conversationItemDecorations.setFirstUnreadCount(state.meta.unreadCount) colorizer.onGroupMembershipChanged(state.meta.groupMemberAcis) @@ -1210,7 +1210,17 @@ class ConversationFragment : presentChatColors(recipient.chatColors) invalidateOptionsMenu() - adapter.setMessageRequestIsAccepted(!viewModel.hasMessageRequestState) + updateMessageRequestAcceptedState(!viewModel.hasMessageRequestState) + } + + private fun updateMessageRequestAcceptedState(isMessageRequestAccepted: Boolean) { + if (binding.conversationItemRecycler.isInLayout) { + binding.conversationItemRecycler.doAfterNextLayout { + adapter.setMessageRequestIsAccepted(isMessageRequestAccepted) + } + } else { + adapter.setMessageRequestIsAccepted(isMessageRequestAccepted) + } } private fun invalidateOptionsMenu() {