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 d1a953ba09..cf67a765d7 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -26,8 +26,10 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.bumble.appyx.core.composable.Children +import com.bumble.appyx.core.composable.PermanentChild import com.bumble.appyx.core.lifecycle.subscribe import com.bumble.appyx.core.modality.BuildContext +import com.bumble.appyx.core.navigation.model.permanent.PermanentNavModel import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.plugin.Plugin import com.bumble.appyx.core.plugin.plugins @@ -95,6 +97,10 @@ class LoggedInFlowNode @AssistedInject constructor( initialElement = NavTarget.RoomList, savedStateMap = buildContext.savedStateMap, ), + permanentNavModel = PermanentNavModel( + NavTarget.Permanent, + savedStateMap = buildContext.savedStateMap, + ), buildContext = buildContext, plugins = plugins ) { @@ -328,7 +334,7 @@ class LoggedInFlowNode @AssistedInject constructor( val isFtueDisplayed by ftueState.shouldDisplayFlow.collectAsState() if (!isFtueDisplayed) { - PermanentChild(navTarget = NavTarget.Permanent) + PermanentChild(permanentNavModel = permanentNavModel, navTarget = NavTarget.Permanent) } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 84df1e48e6..95d600ff00 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ datetime = "0.4.1" serialization_json = "1.6.0" showkase = "1.0.0-beta18" jsoup = "1.16.1" -appyx = "1.3.0" +appyx = "1.4.0" dependencycheck = "8.4.0" dependencyanalysis = "1.24.0" stem = "2.3.0" diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/BackstackNode.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/BackstackNode.kt index ec22c5e21f..deb6d0e63b 100644 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/BackstackNode.kt +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/BackstackNode.kt @@ -19,6 +19,8 @@ package io.element.android.libraries.architecture import androidx.compose.runtime.Stable import com.bumble.appyx.core.children.ChildEntry import com.bumble.appyx.core.modality.BuildContext +import com.bumble.appyx.core.navigation.model.combined.plus +import com.bumble.appyx.core.navigation.model.permanent.PermanentNavModel import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.core.plugin.Plugin @@ -33,10 +35,11 @@ import com.bumble.appyx.navmodel.backstack.BackStack abstract class BackstackNode( val backstack: BackStack, buildContext: BuildContext, + plugins: List, + val permanentNavModel: PermanentNavModel = PermanentNavModel(emptySet(), null), childKeepMode: ChildEntry.KeepMode = ChildEntry.KeepMode.KEEP, - plugins: List ) : ParentNode( - navModel = backstack, + navModel = backstack + permanentNavModel, buildContext = buildContext, plugins = plugins, childKeepMode = childKeepMode,