Migrate Preferences to new architecture

This commit is contained in:
ganfra 2023-01-09 19:27:28 +01:00
parent 9e211b5e04
commit ae273bd4ea
26 changed files with 399 additions and 174 deletions

View file

@ -13,6 +13,7 @@ import com.bumble.appyx.navmodel.backstack.operation.push
import io.element.android.x.architecture.createNode
import io.element.android.x.architecture.viewmodel.viewModelSupportNode
import io.element.android.x.features.messages.MessagesScreen
import io.element.android.x.features.preferences.PreferencesFlowNode
import io.element.android.x.features.roomlist.RoomListNode
import io.element.android.x.matrix.core.RoomId
import io.element.android.x.matrix.core.SessionId
@ -34,6 +35,10 @@ class LoggedInFlowNode(
override fun onRoomClicked(roomId: RoomId) {
backstack.push(NavTarget.Messages(roomId))
}
override fun onSettingsClicked() {
backstack.push(NavTarget.Settings)
}
}
sealed interface NavTarget : Parcelable {
@ -42,6 +47,9 @@ class LoggedInFlowNode(
@Parcelize
data class Messages(val roomId: RoomId) : NavTarget
@Parcelize
object Settings : NavTarget
}
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
@ -55,6 +63,9 @@ class LoggedInFlowNode(
onBackPressed = { backstack.pop() }
)
}
NavTarget.Settings -> {
PreferencesFlowNode(buildContext)
}
}
}