Renaming package to selectusers

This commit is contained in:
Maxime NATUREL 2023-03-14 14:47:27 +01:00 committed by Florian Renaud
parent c476a29edb
commit 52f9d2b091
7 changed files with 40 additions and 41 deletions

View file

@ -29,7 +29,7 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode import io.element.android.anvilannotations.ContributesNode
import io.element.android.features.createroom.impl.root.CreateRoomRootNode import io.element.android.features.createroom.impl.root.CreateRoomRootNode
import io.element.android.features.createroom.impl.selectmembers.SelectMembersNode import io.element.android.features.createroom.impl.selectusers.SelectUsersNode
import io.element.android.libraries.architecture.BackstackNode import io.element.android.libraries.architecture.BackstackNode
import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ -67,7 +67,7 @@ class CreateRoomFlowNode @AssistedInject constructor(
} }
createNode<CreateRoomRootNode>(buildContext, plugins = listOf(callback)) createNode<CreateRoomRootNode>(buildContext, plugins = listOf(callback))
} }
NavTarget.NewRoom -> createNode<SelectMembersNode>(buildContext) NavTarget.NewRoom -> createNode<SelectUsersNode>(buildContext)
} }
} }

View file

@ -14,11 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.MatrixUser
sealed interface SelectMembersEvents { sealed interface SelectUsersEvents {
data class AddToSelection(val matrixUser: MatrixUser) : SelectMembersEvents data class AddToSelection(val matrixUser: MatrixUser) : SelectUsersEvents
data class RemoveFromSelection(val matrixUser: MatrixUser) : SelectMembersEvents data class RemoveFromSelection(val matrixUser: MatrixUser) : SelectUsersEvents
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -27,16 +27,16 @@ import io.element.android.anvilannotations.ContributesNode
import io.element.android.libraries.di.AppScope import io.element.android.libraries.di.AppScope
@ContributesNode(AppScope::class) @ContributesNode(AppScope::class)
class SelectMembersNode @AssistedInject constructor( class SelectUsersNode @AssistedInject constructor(
@Assisted buildContext: BuildContext, @Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>, @Assisted plugins: List<Plugin>,
private val presenter: SelectMembersPresenter, private val presenter: SelectUsersPresenter,
) : Node(buildContext, plugins = plugins) { ) : Node(buildContext, plugins = plugins) {
@Composable @Composable
override fun View(modifier: Modifier) { override fun View(modifier: Modifier) {
val state = presenter.present() val state = presenter.present()
SelectMembersView( SelectUsersView(
state = state, state = state,
modifier = modifier, modifier = modifier,
onBackPressed = { navigateUp() }, onBackPressed = { navigateUp() },

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState import androidx.compose.runtime.MutableState
@ -28,20 +28,20 @@ import kotlinx.collections.immutable.toImmutableList
import javax.inject.Inject import javax.inject.Inject
// TODO add unit tests // TODO add unit tests
class SelectMembersPresenter @Inject constructor() : Presenter<SelectMembersState> { class SelectUsersPresenter @Inject constructor() : Presenter<SelectUsersState> {
@Composable @Composable
override fun present(): SelectMembersState { override fun present(): SelectUsersState {
val selectedUsers: MutableState<ImmutableList<MatrixUser>> = remember { mutableStateOf(persistentListOf()) } val selectedUsers: MutableState<ImmutableList<MatrixUser>> = remember { mutableStateOf(persistentListOf()) }
fun handleEvents(event: SelectMembersEvents) { fun handleEvents(event: SelectUsersEvents) {
when (event) { when (event) {
is SelectMembersEvents.AddToSelection -> selectedUsers.value = selectedUsers.value.plus(event.matrixUser).toImmutableList() is SelectUsersEvents.AddToSelection -> selectedUsers.value = selectedUsers.value.plus(event.matrixUser).toImmutableList()
is SelectMembersEvents.RemoveFromSelection -> selectedUsers.value = selectedUsers.value.minus(event.matrixUser).toImmutableList() is SelectUsersEvents.RemoveFromSelection -> selectedUsers.value = selectedUsers.value.minus(event.matrixUser).toImmutableList()
} }
} }
return SelectMembersState( return SelectUsersState(
selectedUsers = selectedUsers.value, selectedUsers = selectedUsers.value,
eventSink = ::handleEvents, eventSink = ::handleEvents,
) )

View file

@ -14,12 +14,12 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.MatrixUser
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
data class SelectMembersState( data class SelectUsersState(
val selectedUsers: ImmutableList<MatrixUser>, val selectedUsers: ImmutableList<MatrixUser>,
val eventSink: (SelectMembersEvents) -> Unit, val eventSink: (SelectUsersEvents) -> Unit,
) )

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarData
@ -22,11 +22,11 @@ import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.ui.model.MatrixUser import io.element.android.libraries.matrix.ui.model.MatrixUser
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
open class SelectMembersStateProvider : PreviewParameterProvider<SelectMembersState> { open class SelectUsersStateProvider : PreviewParameterProvider<SelectUsersState> {
override val values: Sequence<SelectMembersState> override val values: Sequence<SelectUsersState>
get() = sequenceOf( get() = sequenceOf(
aSelectMembersState(), aSelectUsersState(),
aSelectMembersState().copy( aSelectUsersState().copy(
selectedUsers = persistentListOf( selectedUsers = persistentListOf(
aMatrixUser(userName = "User"), aMatrixUser(userName = "User"),
aMatrixUser(userName = "User with long name"), aMatrixUser(userName = "User with long name"),
@ -35,7 +35,7 @@ open class SelectMembersStateProvider : PreviewParameterProvider<SelectMembersSt
) )
} }
fun aSelectMembersState() = SelectMembersState( fun aSelectUsersState() = SelectUsersState(
selectedUsers = persistentListOf(), selectedUsers = persistentListOf(),
eventSink = {} eventSink = {}
) )

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package io.element.android.features.createroom.impl.selectmembers package io.element.android.features.createroom.impl.selectusers
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
@ -57,8 +57,8 @@ import io.element.android.libraries.ui.strings.R as StringR
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun SelectMembersView( fun SelectUsersView(
state: SelectMembersState, state: SelectUsersState,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {}, onBackPressed: () -> Unit = {},
onNextPressed: () -> Unit = {}, onNextPressed: () -> Unit = {},
@ -67,7 +67,7 @@ fun SelectMembersView(
Scaffold( Scaffold(
topBar = { topBar = {
SelectMembersViewTopBar( SelectUsersViewTopBar(
hasSelectedUsers = state.selectedUsers.isNotEmpty(), hasSelectedUsers = state.selectedUsers.isNotEmpty(),
onBackPressed = onBackPressed, onBackPressed = onBackPressed,
onNextPressed = onNextPressed, onNextPressed = onNextPressed,
@ -80,10 +80,10 @@ fun SelectMembersView(
.padding(padding) .padding(padding)
) { ) {
// TODO create a SearchUserView with multi selection option + callbacks // TODO create a SearchUserView with multi selection option + callbacks
SelectedMembersList( SelectedUsersList(
modifier = Modifier.padding(horizontal = 16.dp), modifier = Modifier.padding(horizontal = 16.dp),
selectedUsers = state.selectedUsers, selectedUsers = state.selectedUsers,
onUserRemoved = { eventSink(SelectMembersEvents.RemoveFromSelection(it)) } onUserRemoved = { eventSink(SelectUsersEvents.RemoveFromSelection(it)) }
) )
} }
} }
@ -91,7 +91,7 @@ fun SelectMembersView(
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun SelectMembersViewTopBar( fun SelectUsersViewTopBar(
hasSelectedUsers: Boolean, hasSelectedUsers: Boolean,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {}, onBackPressed: () -> Unit = {},
@ -123,7 +123,7 @@ fun SelectMembersViewTopBar(
} }
@Composable @Composable
fun SelectedMembersList( fun SelectedUsersList(
selectedUsers: List<MatrixUser>, selectedUsers: List<MatrixUser>,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onUserRemoved: (MatrixUser) -> Unit = {}, onUserRemoved: (MatrixUser) -> Unit = {},
@ -133,7 +133,7 @@ fun SelectedMembersList(
horizontalArrangement = Arrangement.spacedBy(24.dp), horizontalArrangement = Arrangement.spacedBy(24.dp),
) { ) {
items(selectedUsers) { matrixUser -> items(selectedUsers) { matrixUser ->
SelectedMember( SelectedUser(
matrixUser = matrixUser, matrixUser = matrixUser,
onUserRemoved = onUserRemoved, onUserRemoved = onUserRemoved,
) )
@ -142,7 +142,7 @@ fun SelectedMembersList(
} }
@Composable @Composable
fun SelectedMember( fun SelectedUser(
matrixUser: MatrixUser, matrixUser: MatrixUser,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onUserRemoved: (MatrixUser) -> Unit, onUserRemoved: (MatrixUser) -> Unit,
@ -151,7 +151,6 @@ fun SelectedMember(
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
) { ) {
// TODO set the size using custom Avatar size set to 56.dp
Avatar(matrixUser.avatarData) Avatar(matrixUser.avatarData)
Text( Text(
text = matrixUser.username.orEmpty(), text = matrixUser.username.orEmpty(),
@ -179,15 +178,15 @@ fun SelectedMember(
@Preview @Preview
@Composable @Composable
internal fun ChangeServerViewLightPreview(@PreviewParameter(SelectMembersStateProvider::class) state: SelectMembersState) = internal fun ChangeServerViewLightPreview(@PreviewParameter(SelectUsersStateProvider::class) state: SelectUsersState) =
ElementPreviewLight { ContentToPreview(state) } ElementPreviewLight { ContentToPreview(state) }
@Preview @Preview
@Composable @Composable
internal fun ChangeServerViewDarkPreview(@PreviewParameter(SelectMembersStateProvider::class) state: SelectMembersState) = internal fun ChangeServerViewDarkPreview(@PreviewParameter(SelectUsersStateProvider::class) state: SelectUsersState) =
ElementPreviewDark { ContentToPreview(state) } ElementPreviewDark { ContentToPreview(state) }
@Composable @Composable
private fun ContentToPreview(state: SelectMembersState) { private fun ContentToPreview(state: SelectUsersState) {
SelectMembersView(state = state) SelectUsersView(state = state)
} }