Check if user is not already selected

This commit is contained in:
Florian Renaud 2023-04-13 23:33:54 +02:00
parent ddb49da7f3
commit 841a24a3a4
2 changed files with 4 additions and 6 deletions

View file

@ -26,7 +26,9 @@ class UserListDataStore @Inject constructor() {
private val selectedUsers: MutableStateFlow<List<MatrixUser>> = MutableStateFlow(emptyList())
fun selectUser(user: MatrixUser) {
selectedUsers.tryEmit(selectedUsers.value.plus(user))
if (user !in selectedUsers.value) {
selectedUsers.tryEmit(selectedUsers.value.plus(user))
}
}
fun removeUserFromSelection(user: MatrixUser) {

View file

@ -72,11 +72,7 @@ class DefaultUserListPresenter @AssistedInject constructor(
when (event) {
is UserListEvents.OnSearchActiveChanged -> isSearchActive = event.active
is UserListEvents.UpdateSearchQuery -> searchQuery = event.query
is UserListEvents.AddToSelection -> {
if (event.matrixUser !in selectedUsers.value) {
userListDataStore.selectUser(event.matrixUser)
}
}
is UserListEvents.AddToSelection -> userListDataStore.selectUser(event.matrixUser)
is UserListEvents.RemoveFromSelection -> userListDataStore.removeUserFromSelection(event.matrixUser)
}
}