From 342b11a3eac781679363ee01b65a27d5f0615a2c Mon Sep 17 00:00:00 2001 From: Sagar Date: Thu, 9 Jan 2025 00:56:04 +0530 Subject: [PATCH] Story Privacy Setting UI issues Fixes #13863 Resolves #13892 Co-authored-by: Greyson Parrelli --- .../select/BaseStoryRecipientSelectionFragment.kt | 6 +++++- .../select/BaseStoryRecipientSelectionViewModel.kt | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionFragment.kt index c76c2ec34b..e36220d528 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionFragment.kt @@ -77,6 +77,8 @@ abstract class BaseStoryRecipientSelectionFragment : Fragment(R.layout.stories_b } viewModel.state.observe(viewLifecycleOwner) { + actionButton.isEnabled = it.selection.isNotEmpty() + if (it.distributionListId == null || it.privateStory != null) { if (it.isStartingSelection) { getAttachedContactSelectionFragment().markSelected(it.selection.toSet()) @@ -141,7 +143,9 @@ abstract class BaseStoryRecipientSelectionFragment : Fragment(R.layout.stories_b return HeaderAction( R.string.BaseStoryRecipientSelectionFragment__select_all ) { - viewModel.toggleSelectAll() + lifecycleDisposable += viewModel.toggleSelectAll().subscribe { updatedRecipients -> + getAttachedContactSelectionFragment().markSelected(updatedRecipients) + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionViewModel.kt index f578c2297e..d9718b0fbf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign import io.reactivex.rxjava3.kotlin.subscribeBy @@ -38,9 +39,12 @@ class BaseStoryRecipientSelectionViewModel( disposable.clear() } - fun toggleSelectAll() { - disposable += repository.getAllSignalContacts().subscribeBy { allSignalRecipients -> - store.update { it.copy(selection = allSignalRecipients) } + fun toggleSelectAll(): Single> { + return Single.create { emitter -> + disposable += repository.getAllSignalContacts().subscribeBy { allSignalRecipients -> + store.update { it.copy(selection = allSignalRecipients) } + emitter.onSuccess(allSignalRecipients) + } } }