From 9fa6d4774de0eff2569d49b09b5f5ea64dbde664 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 2 Dec 2024 15:41:29 -0400 Subject: [PATCH] Ensure updateMessageRequestAcceptedState runs on main thread. --- .../conversation/v2/ConversationFragment.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 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 28a2ca9e93..6481f7d0e4 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 @@ -42,6 +42,7 @@ import android.widget.TextView.OnEditorActionListener import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.activity.result.ActivityResultLauncher +import androidx.annotation.MainThread import androidx.annotation.StringRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode @@ -893,13 +894,13 @@ class ConversationFragment : .conversationThreadState .subscribeOn(Schedulers.io()) .doOnSuccess { state -> - updateMessageRequestAcceptedState(state.meta.messageRequestData.isMessageRequestAccepted) SignalLocalMetrics.ConversationOpen.onDataLoaded() conversationItemDecorations.setFirstUnreadCount(state.meta.unreadCount) colorizer.onGroupMembershipChanged(state.meta.groupMemberAcis) } .observeOn(AndroidSchedulers.mainThread()) .doOnSuccess { state -> + updateMessageRequestAcceptedState(state.meta.messageRequestData.isMessageRequestAccepted) moveToStartPosition(state.meta) } .flatMapObservable { it.items.data } @@ -1313,14 +1314,9 @@ class ConversationFragment : updateMessageRequestAcceptedState(!viewModel.hasMessageRequestState) } + @MainThread private fun updateMessageRequestAcceptedState(isMessageRequestAccepted: Boolean) { - if (binding.conversationItemRecycler.isInLayout) { - binding.conversationItemRecycler.doAfterNextLayout { - adapter.setMessageRequestIsAccepted(isMessageRequestAccepted) - } - } else { - adapter.setMessageRequestIsAccepted(isMessageRequestAccepted) - } + adapter.setMessageRequestIsAccepted(isMessageRequestAccepted) } private fun invalidateOptionsMenu() {