From b81147d41363aa5283e6cf5a4b7ef14ee7317aa5 Mon Sep 17 00:00:00 2001 From: Mac DeCourcy <49794076+mdecourcy@users.noreply.github.com> Date: Mon, 1 Dec 2025 03:54:59 -0800 Subject: [PATCH] fix: system back button exiting from node detail page (#3870) --- .../com/geeksville/mesh/ui/contact/AdaptiveContactsScreen.kt | 5 +++++ .../com/geeksville/mesh/ui/node/AdaptiveNodeListScreen.kt | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/app/src/main/java/com/geeksville/mesh/ui/contact/AdaptiveContactsScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/contact/AdaptiveContactsScreen.kt index 8b499311b..03e984917 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/contact/AdaptiveContactsScreen.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/contact/AdaptiveContactsScreen.kt @@ -17,6 +17,7 @@ package com.geeksville.mesh.ui.contact +import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -67,6 +68,10 @@ fun AdaptiveContactsScreen( val scope = rememberCoroutineScope() val backNavigationBehavior = BackNavigationBehavior.PopUntilScaffoldValueChange + BackHandler(enabled = navigator.currentDestination?.pane == ListDetailPaneScaffoldRole.Detail) { + scope.launch { navigator.navigateBack(backNavigationBehavior) } + } + LaunchedEffect(initialContactKey) { if (initialContactKey != null) { navigator.navigateTo(ListDetailPaneScaffoldRole.Detail, initialContactKey) diff --git a/app/src/main/java/com/geeksville/mesh/ui/node/AdaptiveNodeListScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/node/AdaptiveNodeListScreen.kt index b74937832..f4db4c311 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/node/AdaptiveNodeListScreen.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/node/AdaptiveNodeListScreen.kt @@ -17,6 +17,7 @@ package com.geeksville.mesh.ui.node +import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -66,6 +67,10 @@ fun AdaptiveNodeListScreen( val scope = rememberCoroutineScope() val backNavigationBehavior = BackNavigationBehavior.PopUntilScaffoldValueChange + BackHandler(enabled = navigator.currentDestination?.pane == ListDetailPaneScaffoldRole.Detail) { + scope.launch { navigator.navigateBack(backNavigationBehavior) } + } + LaunchedEffect(initialNodeId) { if (initialNodeId != null) { navigator.navigateTo(ListDetailPaneScaffoldRole.Detail, initialNodeId)