Renaming package to selectusers

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

View file

@ -29,7 +29,7 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode
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.animation.rememberDefaultTransitionHandler
import io.element.android.libraries.architecture.createNode
@ -67,7 +67,7 @@ class CreateRoomFlowNode @AssistedInject constructor(
}
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.
*/
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
sealed interface SelectMembersEvents {
data class AddToSelection(val matrixUser: MatrixUser) : SelectMembersEvents
data class RemoveFromSelection(val matrixUser: MatrixUser) : SelectMembersEvents
sealed interface SelectUsersEvents {
data class AddToSelection(val matrixUser: MatrixUser) : SelectUsersEvents
data class RemoveFromSelection(val matrixUser: MatrixUser) : SelectUsersEvents
}

View file

@ -14,7 +14,7 @@
* 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.ui.Modifier
@ -27,16 +27,16 @@ import io.element.android.anvilannotations.ContributesNode
import io.element.android.libraries.di.AppScope
@ContributesNode(AppScope::class)
class SelectMembersNode @AssistedInject constructor(
class SelectUsersNode @AssistedInject constructor(
@Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>,
private val presenter: SelectMembersPresenter,
private val presenter: SelectUsersPresenter,
) : Node(buildContext, plugins = plugins) {
@Composable
override fun View(modifier: Modifier) {
val state = presenter.present()
SelectMembersView(
SelectUsersView(
state = state,
modifier = modifier,
onBackPressed = { navigateUp() },

View file

@ -14,7 +14,7 @@
* 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.MutableState
@ -28,20 +28,20 @@ import kotlinx.collections.immutable.toImmutableList
import javax.inject.Inject
// TODO add unit tests
class SelectMembersPresenter @Inject constructor() : Presenter<SelectMembersState> {
class SelectUsersPresenter @Inject constructor() : Presenter<SelectUsersState> {
@Composable
override fun present(): SelectMembersState {
override fun present(): SelectUsersState {
val selectedUsers: MutableState<ImmutableList<MatrixUser>> = remember { mutableStateOf(persistentListOf()) }
fun handleEvents(event: SelectMembersEvents) {
fun handleEvents(event: SelectUsersEvents) {
when (event) {
is SelectMembersEvents.AddToSelection -> selectedUsers.value = selectedUsers.value.plus(event.matrixUser).toImmutableList()
is SelectMembersEvents.RemoveFromSelection -> selectedUsers.value = selectedUsers.value.minus(event.matrixUser).toImmutableList()
is SelectUsersEvents.AddToSelection -> selectedUsers.value = selectedUsers.value.plus(event.matrixUser).toImmutableList()
is SelectUsersEvents.RemoveFromSelection -> selectedUsers.value = selectedUsers.value.minus(event.matrixUser).toImmutableList()
}
}
return SelectMembersState(
return SelectUsersState(
selectedUsers = selectedUsers.value,
eventSink = ::handleEvents,
)

View file

@ -14,12 +14,12 @@
* 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 kotlinx.collections.immutable.ImmutableList
data class SelectMembersState(
data class SelectUsersState(
val selectedUsers: ImmutableList<MatrixUser>,
val eventSink: (SelectMembersEvents) -> Unit,
val eventSink: (SelectUsersEvents) -> Unit,
)

View file

@ -14,7 +14,7 @@
* 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 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 kotlinx.collections.immutable.persistentListOf
open class SelectMembersStateProvider : PreviewParameterProvider<SelectMembersState> {
override val values: Sequence<SelectMembersState>
open class SelectUsersStateProvider : PreviewParameterProvider<SelectUsersState> {
override val values: Sequence<SelectUsersState>
get() = sequenceOf(
aSelectMembersState(),
aSelectMembersState().copy(
aSelectUsersState(),
aSelectUsersState().copy(
selectedUsers = persistentListOf(
aMatrixUser(userName = "User"),
aMatrixUser(userName = "User with long name"),
@ -35,7 +35,7 @@ open class SelectMembersStateProvider : PreviewParameterProvider<SelectMembersSt
)
}
fun aSelectMembersState() = SelectMembersState(
fun aSelectUsersState() = SelectUsersState(
selectedUsers = persistentListOf(),
eventSink = {}
)

View file

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