feat(join by alias) : makes sure to pass server names

This commit is contained in:
ganfra 2025-02-25 11:34:29 +01:00
parent 57808aec46
commit e5ad0f6e5d
7 changed files with 14 additions and 11 deletions

View file

@ -357,8 +357,8 @@ class LoggedInFlowNode @AssistedInject constructor(
} }
NavTarget.CreateRoom -> { NavTarget.CreateRoom -> {
val callback = object : CreateRoomEntryPoint.Callback { val callback = object : CreateRoomEntryPoint.Callback {
override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) { override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>) {
backstack.replace(NavTarget.Room(roomIdOrAlias)) backstack.replace(NavTarget.Room(roomIdOrAlias = roomIdOrAlias, serverNames = serverNames))
} }
} }

View file

@ -21,6 +21,6 @@ interface CreateRoomEntryPoint : FeatureEntryPoint {
} }
interface Callback : Plugin { interface Callback : Plugin {
fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>)
} }
} }

View file

@ -17,7 +17,7 @@ import io.element.android.libraries.architecture.overlay.operation.show
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
interface CreateRoomNavigator : Plugin { interface CreateRoomNavigator : Plugin {
fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>)
fun onCreateNewRoom() fun onCreateNewRoom()
fun onShowJoinRoomByAddress() fun onShowJoinRoomByAddress()
fun onDismissJoinRoomByAddress() fun onDismissJoinRoomByAddress()
@ -26,10 +26,10 @@ interface CreateRoomNavigator : Plugin {
class DefaultCreateRoomNavigator( class DefaultCreateRoomNavigator(
private val backstack: BackStack<NavTarget>, private val backstack: BackStack<NavTarget>,
private val overlay: Overlay<NavTarget>, private val overlay: Overlay<NavTarget>,
private val openRoom: (RoomIdOrAlias) -> Unit, private val openRoom: (RoomIdOrAlias, List<String>) -> Unit,
) : CreateRoomNavigator { ) : CreateRoomNavigator {
override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias) = openRoom(roomIdOrAlias) override fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>) = openRoom(roomIdOrAlias, serverNames)
override fun onCreateNewRoom() { override fun onCreateNewRoom() {
backstack.push(NavTarget.NewRoom) backstack.push(NavTarget.NewRoom)

View file

@ -60,8 +60,8 @@ class CreateRoomFlowNode @AssistedInject constructor(
private val navigator = DefaultCreateRoomNavigator( private val navigator = DefaultCreateRoomNavigator(
backstack = backstack, backstack = backstack,
overlay = overlay, overlay = overlay,
openRoom = { roomIdOrAlias -> openRoom = { roomIdOrAlias, viaServers ->
plugins<CreateRoomEntryPoint.Callback>().forEach { it.onOpenRoom(roomIdOrAlias) } plugins<CreateRoomEntryPoint.Callback>().forEach { it.onOpenRoom(roomIdOrAlias, viaServers) }
} }
) )

View file

@ -49,7 +49,7 @@ class ConfigureRoomNode @AssistedInject constructor(
modifier = modifier, modifier = modifier,
onBackClick = this::navigateUp, onBackClick = this::navigateUp,
onCreateRoomSuccess = { onCreateRoomSuccess = {
navigator.onOpenRoom(it.toRoomIdOrAlias()) navigator.onOpenRoom(roomIdOrAlias = it.toRoomIdOrAlias(), serverNames = emptyList())
}, },
) )
} }

View file

@ -94,7 +94,10 @@ class JoinRoomByAddressPresenter @AssistedInject constructor(
private fun onRoomFound(state: RoomAddressState.RoomFound) { private fun onRoomFound(state: RoomAddressState.RoomFound) {
navigator.onDismissJoinRoomByAddress() navigator.onDismissJoinRoomByAddress()
navigator.onOpenRoom(state.resolved.roomId.toRoomIdOrAlias()) navigator.onOpenRoom(
roomIdOrAlias = state.resolved.roomId.toRoomIdOrAlias(),
serverNames = state.resolved.servers
)
} }
@Composable @Composable

View file

@ -53,7 +53,7 @@ class CreateRoomRootNode @AssistedInject constructor(
onCloseClick = this::navigateUp, onCloseClick = this::navigateUp,
onNewRoomClick = navigator::onCreateNewRoom, onNewRoomClick = navigator::onCreateNewRoom,
onOpenDM = { onOpenDM = {
navigator.onOpenRoom(it.toRoomIdOrAlias()) navigator.onOpenRoom(roomIdOrAlias = it.toRoomIdOrAlias(), serverNames = emptyList())
}, },
onJoinByAddressClick = navigator::onShowJoinRoomByAddress, onJoinByAddressClick = navigator::onShowJoinRoomByAddress,
onInviteFriendsClick = { invitePeople(activity) } onInviteFriendsClick = { invitePeople(activity) }