iterate on the isSelected value. Let the UI decide how to render.
This commit is contained in:
parent
e74fcde43e
commit
ae00c28c0d
3 changed files with 10 additions and 11 deletions
|
|
@ -176,7 +176,7 @@ class DefaultInvitePeoplePresenter @AssistedInject constructor(
|
||||||
val isInvited = existingMembership == RoomMembershipState.INVITE
|
val isInvited = existingMembership == RoomMembershipState.INVITE
|
||||||
InvitableUser(
|
InvitableUser(
|
||||||
matrixUser = result.matrixUser,
|
matrixUser = result.matrixUser,
|
||||||
isSelected = selectedUsers.value.contains(result.matrixUser) || isJoined || isInvited,
|
isSelected = selectedUsers.value.contains(result.matrixUser),
|
||||||
isAlreadyJoined = isJoined,
|
isAlreadyJoined = isJoined,
|
||||||
isAlreadyInvited = isInvited,
|
isAlreadyInvited = isInvited,
|
||||||
isUnresolved = result.isUnresolved,
|
isUnresolved = result.isUnresolved,
|
||||||
|
|
|
||||||
|
|
@ -127,10 +127,9 @@ private fun InvitePeopleSearchBar(
|
||||||
|
|
||||||
LazyColumn {
|
LazyColumn {
|
||||||
itemsIndexed(results) { index, invitableUser ->
|
itemsIndexed(results) { index, invitableUser ->
|
||||||
val notInvitedOrJoined =
|
val invitedOrJoined = invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined
|
||||||
!(invitableUser.isAlreadyInvited || invitableUser.isAlreadyJoined)
|
val isUnresolved = invitableUser.isUnresolved && !invitedOrJoined
|
||||||
val isUnresolved = invitableUser.isUnresolved && notInvitedOrJoined
|
val enabled = isUnresolved || !invitedOrJoined
|
||||||
val enabled = isUnresolved || notInvitedOrJoined
|
|
||||||
val data = if (isUnresolved) {
|
val data = if (isUnresolved) {
|
||||||
CheckableUserRowData.Unresolved(
|
CheckableUserRowData.Unresolved(
|
||||||
avatarData = invitableUser.matrixUser.getAvatarData(AvatarSize.UserListItem),
|
avatarData = invitableUser.matrixUser.getAvatarData(AvatarSize.UserListItem),
|
||||||
|
|
@ -152,7 +151,7 @@ private fun InvitePeopleSearchBar(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
CheckableUserRow(
|
CheckableUserRow(
|
||||||
checked = invitableUser.isSelected,
|
checked = invitableUser.isSelected || invitedOrJoined,
|
||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
data = data,
|
data = data,
|
||||||
onCheckedChange = { onToggleUser(invitableUser.matrixUser) },
|
onCheckedChange = { onToggleUser(invitableUser.matrixUser) },
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ internal class DefaultInvitePeoplePresenterTest {
|
||||||
} else {
|
} else {
|
||||||
assertThat(users[index].isAlreadyJoined).isTrue()
|
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).isNotNull()
|
||||||
assertThat(shouldBeSelectedUser?.isSelected).isTrue()
|
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!!)
|
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).isNotNull()
|
||||||
assertThat(shouldBeSelectedUser?.isSelected).isTrue()
|
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!!)
|
val allOtherUsers = users.minus(shouldBeSelectedUser!!)
|
||||||
assertThat(allOtherUsers.all { it.isSelected }).isTrue()
|
assertThat(allOtherUsers.none { it.isSelected }).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue