From 8c9c11df232a06a3b677f47c6643b2c50c42676c Mon Sep 17 00:00:00 2001 From: M57 <41645758+Hy4ri@users.noreply.github.com> Date: Sat, 20 Jun 2026 17:01:37 +0300 Subject: [PATCH] refactor(#103): centralize navigation mutations through NavigationController.resetTo() (#164) * refactor(#103): centralize navigation mutations through NavigationController.resetTo() * fix(chat): fix scroll-to-bottom FAB compilation errors --- app/src/main/java/com/m57/hermescontrol/Navigation.kt | 3 +-- .../java/com/m57/hermescontrol/NavigationController.kt | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) 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) } /**