Some clean up on room details

This commit is contained in:
ganfra 2023-04-12 12:22:13 +02:00
parent 7a247e1c29
commit 281f90e148
7 changed files with 37 additions and 71 deletions

View file

@ -56,19 +56,16 @@ class RoomDetailsFlowNode @AssistedInject constructor(
object RoomMemberList : NavTarget
}
interface Callback : Plugin {
fun openRoomMemberList()
}
val callback = object : Callback {
override fun openRoomMemberList() {
backstack.push(NavTarget.RoomMemberList)
}
}
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
return when (navTarget) {
NavTarget.RoomDetails -> createNode<RoomDetailsNode>(buildContext, listOf(callback))
NavTarget.RoomDetails -> {
val callback = object : RoomDetailsNode.Callback {
override fun openRoomMemberList() {
backstack.push(NavTarget.RoomMemberList)
}
}
createNode<RoomDetailsNode>(buildContext, listOf(callback))
}
NavTarget.RoomMemberList -> createNode<RoomMemberListNode>(buildContext)
}
}

View file

@ -41,7 +41,11 @@ class RoomDetailsNode @AssistedInject constructor(
private val room: MatrixRoom,
) : Node(buildContext, plugins = plugins) {
private val callback = plugins<RoomDetailsFlowNode.Callback>().firstOrNull()
interface Callback : Plugin {
fun openRoomMemberList()
}
private val callback = plugins<Callback>().firstOrNull()
private fun openRoomMemberList() {
callback?.openRoomMemberList()