diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt index 783d732036..d316006bae 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt @@ -190,7 +190,12 @@ class PreferencesFlowNode( createNode(buildContext, listOf(developerSettingsCallback)) } NavTarget.Labs -> { - createNode(buildContext) + val callback = object : LabsNode.Callback { + override fun onDone() { + backstack.pop() + } + } + createNode(buildContext, listOf(callback)) } NavTarget.About -> { val callback = object : AboutNode.Callback { diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/labs/LabsNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/labs/LabsNode.kt index 343b4d2795..b7ba73c9af 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/labs/LabsNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/labs/LabsNode.kt @@ -16,6 +16,7 @@ import com.bumble.appyx.core.plugin.Plugin import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode +import io.element.android.libraries.architecture.callback import io.element.android.libraries.di.SessionScope @ContributesNode(SessionScope::class) @@ -25,9 +26,18 @@ class LabsNode( @Assisted plugins: List, private val presenter: LabsPresenter, ) : Node(buildContext, plugins = plugins) { + interface Callback : Plugin { + fun onDone() + } + + val callback: Callback = callback() + @Composable override fun View(modifier: Modifier) { val state = presenter.present() - LabsView(state = state, onBack = ::navigateUp) + LabsView( + state = state, + onBack = callback::onDone, + ) } }