diff --git a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenter.kt b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenter.kt index fb99e36e84..d74c6ad33f 100644 --- a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenter.kt +++ b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenter.kt @@ -176,7 +176,7 @@ class DefaultInvitePeoplePresenter @AssistedInject constructor( val isInvited = existingMembership == RoomMembershipState.INVITE InvitableUser( matrixUser = result.matrixUser, - isSelected = selectedUsers.value.contains(result.matrixUser) || isJoined || isInvited, + isSelected = selectedUsers.value.contains(result.matrixUser), isAlreadyJoined = isJoined, isAlreadyInvited = isInvited, isUnresolved = result.isUnresolved, diff --git a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt index 7d0fc9aac8..ca42a32f7b 100644 --- a/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt +++ b/features/invitepeople/impl/src/main/kotlin/io/element/android/features/invitepeople/impl/InvitePeopleView.kt @@ -127,10 +127,9 @@ private fun InvitePeopleSearchBar( LazyColumn { itemsIndexed(results) { index, invitableUser -> - val notInvitedOrJoined = - !(invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined) - val isUnresolved = invitableUser.isUnresolved && notInvitedOrJoined - val enabled = isUnresolved || notInvitedOrJoined + val invitedOrJoined = invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined + val isUnresolved = invitableUser.isUnresolved && !invitedOrJoined + val enabled = isUnresolved || !invitedOrJoined val data = if (isUnresolved) { CheckableUserRowData.Unresolved( avatarData = invitableUser.matrixUser.getAvatarData(AvatarSize.UserListItem), @@ -152,7 +151,7 @@ private fun InvitePeopleSearchBar( ) } CheckableUserRow( - checked = invitableUser.isSelected, + checked = invitableUser.isSelected || invitedOrJoined, enabled = enabled, data = data, onCheckedChange = { onToggleUser(invitableUser.matrixUser) }, diff --git a/features/invitepeople/impl/src/test/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenterTest.kt b/features/invitepeople/impl/src/test/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenterTest.kt index 49e381ebee..7f7e80fd7b 100644 --- a/features/invitepeople/impl/src/test/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenterTest.kt +++ b/features/invitepeople/impl/src/test/kotlin/io/element/android/features/invitepeople/impl/DefaultInvitePeoplePresenterTest.kt @@ -142,7 +142,7 @@ internal class DefaultInvitePeoplePresenterTest { } else { assertThat(users[index].isAlreadyJoined).isTrue() } - assertThat(users[index].isSelected).isTrue() + assertThat(users[index].isSelected).isFalse() } } } @@ -323,9 +323,9 @@ internal class DefaultInvitePeoplePresenterTest { assertThat(shouldBeSelectedUser).isNotNull() assertThat(shouldBeSelectedUser?.isSelected).isTrue() - // All the others are selected since their membership is joined or invited + // And no others are val allOtherUsers = users.minus(shouldBeSelectedUser!!) - assertThat(allOtherUsers.all { it.isSelected }).isTrue() + assertThat(allOtherUsers.none { it.isSelected }).isTrue() } } @@ -372,9 +372,9 @@ internal class DefaultInvitePeoplePresenterTest { assertThat(shouldBeSelectedUser).isNotNull() assertThat(shouldBeSelectedUser?.isSelected).isTrue() - // All the others are selected since their membership is joined or invited + // And no others are val allOtherUsers = users.minus(shouldBeSelectedUser!!) - assertThat(allOtherUsers.all { it.isSelected }).isTrue() + assertThat(allOtherUsers.none { it.isSelected }).isTrue() } }