feat(join by alias) : makes sure to pass server names
This commit is contained in:
parent
57808aec46
commit
e5ad0f6e5d
7 changed files with 14 additions and 11 deletions
|
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,6 @@ interface CreateRoomEntryPoint : FeatureEntryPoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Callback : Plugin {
|
interface Callback : Plugin {
|
||||||
fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias)
|
fun onOpenRoom(roomIdOrAlias: RoomIdOrAlias, serverNames: List<String>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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) }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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())
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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) }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue