mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
Present the last added user first
This commit is contained in:
committed by
Florian Renaud
parent
790c2137c7
commit
ddcde735fe
+1
-1
@@ -75,7 +75,7 @@ class DefaultSelectUsersPresenter(private val isMultiSelectionEnabled: Boolean)
|
|||||||
return SelectUsersState(
|
return SelectUsersState(
|
||||||
searchQuery = searchQuery,
|
searchQuery = searchQuery,
|
||||||
searchResults = searchResults.value,
|
searchResults = searchResults.value,
|
||||||
selectedUsers = selectedUsers.value,
|
selectedUsers = selectedUsers.value.reversed().toImmutableSet(),
|
||||||
isSearchActive = isSearchActive,
|
isSearchActive = isSearchActive,
|
||||||
isMultiSelectionEnabled = isMultiSelectionEnabled,
|
isMultiSelectionEnabled = isMultiSelectionEnabled,
|
||||||
eventSink = ::handleEvents,
|
eventSink = ::handleEvents,
|
||||||
|
|||||||
+22
-8
@@ -95,15 +95,29 @@ class DefaultSelectSingleUserPresenterTests {
|
|||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
|
|
||||||
val matrixUser = aMatrixUser()
|
val userA = aMatrixUser("userA", "A")
|
||||||
initialState.eventSink(SelectUsersEvents.AddToSelection(matrixUser))
|
val userB = aMatrixUser("userB", "B")
|
||||||
val selectionAfterAdd = awaitItem().selectedUsers
|
initialState.eventSink(SelectUsersEvents.AddToSelection(userA))
|
||||||
assertThat(selectionAfterAdd).hasSize(1)
|
val selectionAfterAddingA = awaitItem().selectedUsers
|
||||||
assertThat(selectionAfterAdd).contains(matrixUser)
|
assertThat(selectionAfterAddingA).hasSize(1)
|
||||||
|
assertThat(selectionAfterAddingA).contains(userA)
|
||||||
|
|
||||||
initialState.eventSink(SelectUsersEvents.RemoveFromSelection(matrixUser))
|
initialState.eventSink(SelectUsersEvents.AddToSelection(userB))
|
||||||
val selectionAfterRemove = awaitItem().selectedUsers
|
val selectionAfterAddingB = awaitItem().selectedUsers
|
||||||
assertThat(selectionAfterRemove).isEmpty()
|
assertThat(selectionAfterAddingB).hasSize(2)
|
||||||
|
assertThat(selectionAfterAddingB).contains(userA)
|
||||||
|
assertThat(selectionAfterAddingB).contains(userB)
|
||||||
|
// the last added user should be presented first
|
||||||
|
assertThat(selectionAfterAddingB.first()).isEqualTo(userB)
|
||||||
|
|
||||||
|
initialState.eventSink(SelectUsersEvents.RemoveFromSelection(userB))
|
||||||
|
val selectionAfterRemovingB = awaitItem().selectedUsers
|
||||||
|
assertThat(selectionAfterRemovingB).hasSize(1)
|
||||||
|
assertThat(selectionAfterRemovingB).contains(userA)
|
||||||
|
|
||||||
|
initialState.eventSink(SelectUsersEvents.RemoveFromSelection(userA))
|
||||||
|
val selectionAfterRemovingA = awaitItem().selectedUsers
|
||||||
|
assertThat(selectionAfterRemovingA).isEmpty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -32,9 +32,9 @@ open class MatrixUserProvider : PreviewParameterProvider<MatrixUser> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aMatrixUser() = MatrixUser(
|
fun aMatrixUser(id: String = "@id_of_alice:server.org", userName: String = "Alice") = MatrixUser(
|
||||||
id = UserId("@id_of_alice:server.org"),
|
id = UserId(id),
|
||||||
username = "Alice",
|
username = userName,
|
||||||
avatarData = anAvatarData()
|
avatarData = anAvatarData()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user