Introduce SelectionMode enum

This commit is contained in:
Florian Renaud 2023-03-22 11:35:07 +01:00
parent d08a131429
commit 9153d8ced3
8 changed files with 27 additions and 16 deletions

View file

@ -17,5 +17,10 @@
package io.element.android.features.selectusers.api
data class SelectUsersPresenterArgs(
val isMultiSelectionEnabled: Boolean,
val selectionMode: SelectionMode,
)
enum class SelectionMode {
Single,
Multiple,
}

View file

@ -27,6 +27,8 @@ data class SelectUsersState(
val selectedUsers: ImmutableSet<MatrixUser>,
val selectedUsersListState: LazyListState,
val isSearchActive: Boolean,
val isMultiSelectionEnabled: Boolean,
val selectionMode: SelectionMode,
val eventSink: (SelectUsersEvents) -> Unit,
)
) {
val isMultiSelectionEnabled = selectionMode == SelectionMode.Multiple
}

View file

@ -30,11 +30,11 @@ open class SelectUsersStateProvider : PreviewParameterProvider<SelectUsersState>
aSelectUsersState().copy(
isSearchActive = false,
selectedUsers = aSetOfSelectedUsers(),
isMultiSelectionEnabled = true
selectionMode = SelectionMode.Multiple,
),
aSelectUsersState().copy(isSearchActive = true),
aSelectUsersState().copy(isSearchActive = true, searchQuery = "someone"),
aSelectUsersState().copy(isSearchActive = true, searchQuery = "someone", isMultiSelectionEnabled = true),
aSelectUsersState().copy(isSearchActive = true, searchQuery = "someone", selectionMode = SelectionMode.Multiple),
aSelectUsersState().copy(
isSearchActive = true,
searchQuery = "@someone:matrix.org",
@ -44,7 +44,7 @@ open class SelectUsersStateProvider : PreviewParameterProvider<SelectUsersState>
aSelectUsersState().copy(
isSearchActive = true,
searchQuery = "@someone:matrix.org",
isMultiSelectionEnabled = true,
selectionMode = SelectionMode.Multiple,
selectedUsers = aSetOfSelectedUsers(),
searchResults = aListOfResults(),
)
@ -60,7 +60,7 @@ fun aSelectUsersState() = SelectUsersState(
firstVisibleItemIndex = 0,
firstVisibleItemScrollOffset = 0,
),
isMultiSelectionEnabled = false,
selectionMode = SelectionMode.Single,
eventSink = {}
)