From 841a24a3a4ebbe209f5c89e7025b15ed0fa78b2c Mon Sep 17 00:00:00 2001 From: Florian Renaud Date: Thu, 13 Apr 2023 23:33:54 +0200 Subject: [PATCH] Check if user is not already selected --- .../android/features/userlist/api/UserListDataStore.kt | 4 +++- .../features/userlist/impl/DefaultUserListPresenter.kt | 6 +----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/features/userlist/api/src/main/kotlin/io/element/android/features/userlist/api/UserListDataStore.kt b/features/userlist/api/src/main/kotlin/io/element/android/features/userlist/api/UserListDataStore.kt index c1e982dd59..f9c73950f1 100644 --- a/features/userlist/api/src/main/kotlin/io/element/android/features/userlist/api/UserListDataStore.kt +++ b/features/userlist/api/src/main/kotlin/io/element/android/features/userlist/api/UserListDataStore.kt @@ -26,7 +26,9 @@ class UserListDataStore @Inject constructor() { private val selectedUsers: MutableStateFlow> = 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) { diff --git a/features/userlist/impl/src/main/kotlin/io/element/android/features/userlist/impl/DefaultUserListPresenter.kt b/features/userlist/impl/src/main/kotlin/io/element/android/features/userlist/impl/DefaultUserListPresenter.kt index 965bf40983..06f4caed86 100644 --- a/features/userlist/impl/src/main/kotlin/io/element/android/features/userlist/impl/DefaultUserListPresenter.kt +++ b/features/userlist/impl/src/main/kotlin/io/element/android/features/userlist/impl/DefaultUserListPresenter.kt @@ -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) } }