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 74ae22df5e..2f076a53d0 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 @@ -2916,7 +2916,10 @@ class ConversationFragment : messageRequestViewModel .onReportSpam() .doOnSubscribe { disabledInput.showBusy() } - .doOnTerminate { disabledInput.hideBusy() } + .doOnTerminate { + disabledInput.hideBusy() + viewModel.refreshInputReadyState() + } .subscribeBy { Log.d(TAG, "report spam complete") toast(R.string.ConversationFragment_reported_as_spam) @@ -2930,7 +2933,10 @@ class ConversationFragment : messageRequestViewModel .onBlockAndReportSpam() .doOnSubscribe { disabledInput.showBusy() } - .doOnTerminate { disabledInput.hideBusy() } + .doOnTerminate { + disabledInput.hideBusy() + viewModel.refreshInputReadyState() + } .subscribeBy { result -> when (result) { is Result.Success -> { @@ -3009,7 +3015,10 @@ class ConversationFragment : private fun Single>.subscribeWithShowProgress(logMessage: String): Disposable { val disabledInput = binding.conversationDisabledInput return doOnSubscribe { disabledInput.showBusy() } - .doOnTerminate { disabledInput.hideBusy() } + .doOnTerminate { + disabledInput.hideBusy() + viewModel.refreshInputReadyState() + } .subscribeBy { result -> when (result) { is Result.Success -> Log.d(TAG, "$logMessage complete") diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 207af08fd3..dc4bf690c5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -642,6 +642,13 @@ class ConversationViewModel( refreshIdentityRecords.onNext(Unit) } + fun refreshInputReadyState() { + val recipientId = recipientSnapshot?.id ?: return + viewModelScope.launch(Dispatchers.Default) { + Recipient.live(recipientId).refresh() + } + } + fun updateIdentityRecords(): Completable { val state: IdentityRecordsState = identityRecordsStore.state if (state.recipient == null) {