diff --git a/app/src/main/java/com/m57/hermescontrol/Navigation.kt b/app/src/main/java/com/m57/hermescontrol/Navigation.kt index dedf6d84..c54bdae3 100644 --- a/app/src/main/java/com/m57/hermescontrol/Navigation.kt +++ b/app/src/main/java/com/m57/hermescontrol/Navigation.kt @@ -326,8 +326,7 @@ fun MainNavigation(sessionId: String? = null) { entry { ConnectScreenContent( onConnected = { - backStack.clear() - backStack.add(ChatScreen) + NavigationController.resetTo(ChatScreen) }, modifier = Modifier.safeDrawingPadding(), ) diff --git a/app/src/main/java/com/m57/hermescontrol/NavigationController.kt b/app/src/main/java/com/m57/hermescontrol/NavigationController.kt index 118c25f2..4505ce45 100644 --- a/app/src/main/java/com/m57/hermescontrol/NavigationController.kt +++ b/app/src/main/java/com/m57/hermescontrol/NavigationController.kt @@ -49,8 +49,11 @@ object NavigationController { stack.add(key) } - fun add(key: NavKey) { - backStack?.add(key) + /** Clear the stack and navigate to the given screen atomically. */ + fun resetTo(screen: NavKey) { + val stack = backStack ?: return + stack.clear() + stack.add(screen) } /**