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 f00aed14fd..c76c2ec34b 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 @@ -78,7 +78,10 @@ abstract class BaseStoryRecipientSelectionFragment : Fragment(R.layout.stories_b viewModel.state.observe(viewLifecycleOwner) { if (it.distributionListId == null || it.privateStory != null) { - getAttachedContactSelectionFragment().markSelected(it.selection.toSet()) + if (it.isStartingSelection) { + getAttachedContactSelectionFragment().markSelected(it.selection.toSet()) + viewModel.onStartingSelectionAdded() + } presentTitle(toolbar, it.selection.size) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionState.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionState.kt index 9448b5cae8..8d90f1a880 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/select/BaseStoryRecipientSelectionState.kt @@ -7,5 +7,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId data class BaseStoryRecipientSelectionState( val distributionListId: DistributionListId?, val privateStory: DistributionListRecord? = null, - val selection: Set = emptySet() + val selection: Set = emptySet(), + val isStartingSelection: Boolean = false ) 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 3eca572033..f578c2297e 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 @@ -29,7 +29,7 @@ class BaseStoryRecipientSelectionViewModel( disposable += repository.getRecord(distributionListId) .subscribe { record -> val startingSelection = if (record.privacyMode == DistributionListPrivacyMode.ALL_EXCEPT) record.rawMembers else record.members - store.update { it.copy(privateStory = record, selection = it.selection + startingSelection) } + store.update { it.copy(privateStory = record, selection = it.selection + startingSelection, isStartingSelection = true) } } } } @@ -61,6 +61,10 @@ class BaseStoryRecipientSelectionViewModel( } } + fun onStartingSelectionAdded() { + store.update { it.copy(isStartingSelection = false) } + } + sealed class Action { data class GoToNextScreen(val recipients: Set) : Action() object ExitFlow : Action()