diff --git a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt index 54ec8f1f48..f78f3aa668 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -357,8 +357,8 @@ class LoggedInFlowNode @AssistedInject constructor( } NavTarget.CreateRoom -> { val callback = object : CreateRoomEntryPoint.Callback { - override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) { - backstack.replace(NavTarget.Room(roomIdOrAlias)) + override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List) { + backstack.replace(NavTarget.Room(roomIdOrAlias = roomIdOrAlias, serverNames = serverNames)) } } diff --git a/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt b/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt index e96d7e7879..c15db6dabd 100644 --- a/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt +++ b/features/createroom/api/src/main/kotlin/io/element/android/features/createroom/api/CreateRoomEntryPoint.kt @@ -21,6 +21,6 @@ interface CreateRoomEntryPoint : FeatureEntryPoint { } interface Callback : Plugin { - fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) + fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List) } } diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/CreateRoomNavigator.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/CreateRoomNavigator.kt index a7b15a4417..4f9319e292 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/CreateRoomNavigator.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/CreateRoomNavigator.kt @@ -17,7 +17,7 @@ import io.element.android.libraries.architecture.overlay.operation.show import io.element.android.libraries.matrix.api.core.RoomIdOrAlias interface CreateRoomNavigator : Plugin { - fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) + fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List) fun onCreateNewRoom() fun onShowJoinRoomByAddress() fun onDismissJoinRoomByAddress() @@ -26,10 +26,10 @@ interface CreateRoomNavigator : Plugin { class DefaultCreateRoomNavigator( private val backstack: BackStack, private val overlay: Overlay, - private val openRoom: (RoomIdOrAlias) -> Unit, + private val openRoom: (RoomIdOrAlias, List) -> Unit, ) : CreateRoomNavigator { - override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) = openRoom(roomIdOrAlias) + override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List) = openRoom(roomIdOrAlias, serverNames) override fun onCreateNewRoom() { backstack.push(NavTarget.NewRoom) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomFlowNode.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomFlowNode.kt index 7fb4830e0f..9d70950992 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomFlowNode.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomFlowNode.kt @@ -60,8 +60,8 @@ class CreateRoomFlowNode @AssistedInject constructor( private val navigator = DefaultCreateRoomNavigator( backstack = backstack, overlay = overlay, - openRoom = { roomIdOrAlias -> - plugins().forEach { it.onOpenRoom(roomIdOrAlias) } + openRoom = { roomIdOrAlias, viaServers -> + plugins().forEach { it.onOpenRoom(roomIdOrAlias, viaServers) } } ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomNode.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomNode.kt index 5dce257a23..355478d940 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomNode.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomNode.kt @@ -49,7 +49,7 @@ class ConfigureRoomNode @AssistedInject constructor( modifier = modifier, onBackClick = this::navigateUp, onCreateRoomSuccess = { - navigator.onOpenRoom(it.toRoomIdOrAlias()) + navigator.onOpenRoom(roomIdOrAlias = it.toRoomIdOrAlias(), serverNames = emptyList()) }, ) } diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/joinbyaddress/JoinRoomByAddressPresenter.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/joinbyaddress/JoinRoomByAddressPresenter.kt index be1334e253..ec92d7bd57 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/joinbyaddress/JoinRoomByAddressPresenter.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/joinbyaddress/JoinRoomByAddressPresenter.kt @@ -94,7 +94,10 @@ class JoinRoomByAddressPresenter @AssistedInject constructor( private fun onRoomFound(state: RoomAddressState.RoomFound) { navigator.onDismissJoinRoomByAddress() - navigator.onOpenRoom(state.resolved.roomId.toRoomIdOrAlias()) + navigator.onOpenRoom( + roomIdOrAlias = state.resolved.roomId.toRoomIdOrAlias(), + serverNames = state.resolved.servers + ) } @Composable diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootNode.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootNode.kt index b20eb7cf3b..7053b0e856 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootNode.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootNode.kt @@ -53,7 +53,7 @@ class CreateRoomRootNode @AssistedInject constructor( onCloseClick = this::navigateUp, onNewRoomClick = navigator::onCreateNewRoom, onOpenDM = { - navigator.onOpenRoom(it.toRoomIdOrAlias()) + navigator.onOpenRoom(roomIdOrAlias = it.toRoomIdOrAlias(), serverNames = emptyList()) }, onJoinByAddressClick = navigator::onShowJoinRoomByAddress, onInviteFriendsClick = { invitePeople(activity) }