feature (space) : use via parameter from space room

This commit is contained in:
ganfra 2025-09-24 14:11:46 +02:00
parent 28bca11c03
commit af5234478c
5 changed files with 9 additions and 10 deletions

View file

@ -366,8 +366,8 @@ class LoggedInFlowNode(
} }
} }
val spaceCallback = object : SpaceEntryPoint.Callback { val spaceCallback = object : SpaceEntryPoint.Callback {
override fun onOpenRoom(roomId: RoomId) { override fun onOpenRoom(roomId: RoomId, viaParameters: List<String>) {
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias())) backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias(), serverNames = viaParameters))
} }
} }
val inputs = RoomFlowNode.Inputs( val inputs = RoomFlowNode.Inputs(

View file

@ -31,6 +31,6 @@ interface SpaceEntryPoint : FeatureEntryPoint {
) : NodeInputs ) : NodeInputs
interface Callback : Plugin { interface Callback : Plugin {
fun onOpenRoom(roomId: RoomId) fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
} }
} }

View file

@ -36,8 +36,8 @@ class SpaceNode(
SpaceView( SpaceView(
state = state, state = state,
onBackClick = ::navigateUp, onBackClick = ::navigateUp,
onRoomClick = { roomId -> onRoomClick = { spaceRoom ->
callback.onOpenRoom(roomId) callback.onOpenRoom(spaceRoom.roomId, spaceRoom.via)
}, },
modifier = modifier modifier = modifier
) )

View file

@ -39,7 +39,6 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.spaces.SpaceRoom import io.element.android.libraries.matrix.api.spaces.SpaceRoom
import io.element.android.libraries.matrix.ui.components.SpaceHeaderView import io.element.android.libraries.matrix.ui.components.SpaceHeaderView
@ -52,7 +51,7 @@ import kotlinx.collections.immutable.toImmutableList
fun SpaceView( fun SpaceView(
state: SpaceState, state: SpaceState,
onBackClick: () -> Unit, onBackClick: () -> Unit,
onRoomClick: (roomId: RoomId) -> Unit, onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
Scaffold( Scaffold(
@ -76,7 +75,7 @@ fun SpaceView(
@Composable @Composable
private fun SpaceViewContent( private fun SpaceViewContent(
state: SpaceState, state: SpaceState,
onRoomClick: (roomId: RoomId) -> Unit, onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
LazyColumn(modifier.fillMaxSize()) { LazyColumn(modifier.fillMaxSize()) {
@ -102,7 +101,7 @@ private fun SpaceViewContent(
showUnreadIndicator = isInvitation && spaceRoom.roomId !in state.seenSpaceInvites, showUnreadIndicator = isInvitation && spaceRoom.roomId !in state.seenSpaceInvites,
hideAvatars = isInvitation && state.hideInvitesAvatar, hideAvatars = isInvitation && state.hideInvitesAvatar,
onClick = { onClick = {
onRoomClick(spaceRoom.roomId) onRoomClick(spaceRoom)
}, },
onLongClick = { onLongClick = {
// TODO // TODO

View file

@ -49,7 +49,7 @@ class DefaultSpaceEntryPointTest {
) )
} }
val callback = object : SpaceEntryPoint.Callback { val callback = object : SpaceEntryPoint.Callback {
override fun onOpenRoom(roomId: RoomId) { override fun onOpenRoom(roomId: RoomId, viaParameters: List<String>) {
lambdaError() lambdaError()
} }
} }