mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 21:15:48 +00:00
Fix duplicate contacts during story selection.
This commit is contained in:
committed by
Greyson Parrelli
parent
010c45da94
commit
dadf782bd1
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,5 +7,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
data class BaseStoryRecipientSelectionState(
|
||||
val distributionListId: DistributionListId?,
|
||||
val privateStory: DistributionListRecord? = null,
|
||||
val selection: Set<RecipientId> = emptySet()
|
||||
val selection: Set<RecipientId> = emptySet(),
|
||||
val isStartingSelection: Boolean = false
|
||||
)
|
||||
|
||||
@@ -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<RecipientId>) : Action()
|
||||
object ExitFlow : Action()
|
||||
|
||||
Reference in New Issue
Block a user