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

@ -102,7 +102,7 @@ class DefaultSelectUsersPresenter @AssistedInject constructor(
selectedUsers = selectedUsers.value.reversed().toImmutableSet(),
selectedUsersListState = selectedUsersListState,
isSearchActive = isSearchActive,
isMultiSelectionEnabled = args.isMultiSelectionEnabled,
selectionMode = args.selectionMode,
eventSink = ::handleEvents,
)
}

View file

@ -23,6 +23,7 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.selectusers.api.SelectUsersEvents
import io.element.android.features.selectusers.api.SelectUsersPresenterArgs
import io.element.android.features.selectusers.api.SelectionMode
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.ui.components.aMatrixUser
import io.element.android.libraries.matrix.ui.model.MatrixUser
@ -37,7 +38,7 @@ class DefaultSelectUsersPresenterTests {
@Test
fun `present - initial state for single selection`() = runTest {
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(isMultiSelectionEnabled = false))
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(SelectionMode.Single))
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
}.test {
@ -52,7 +53,7 @@ class DefaultSelectUsersPresenterTests {
@Test
fun `present - initial state for multiple selection`() = runTest {
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(isMultiSelectionEnabled = true))
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(SelectionMode.Multiple))
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
}.test {
@ -67,7 +68,7 @@ class DefaultSelectUsersPresenterTests {
@Test
fun `present - update search query`() = runTest {
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(isMultiSelectionEnabled = false))
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(SelectionMode.Single))
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
}.test {
@ -96,7 +97,7 @@ class DefaultSelectUsersPresenterTests {
mockkConstructor(LazyListState::class)
coJustRun { anyConstructed<LazyListState>().scrollToItem(index = any()) }
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(isMultiSelectionEnabled = false))
val presenter = DefaultSelectUsersPresenter(SelectUsersPresenterArgs(SelectionMode.Single))
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
}.test {