From 63faf20fc5ccd7c003e6f7daa932d0c27ae72e92 Mon Sep 17 00:00:00 2001 From: James Rich Date: Thu, 26 Mar 2026 15:03:54 -0500 Subject: [PATCH] refactor: unify navigation display and enhance desktop adaptive layout - Replace the standard `NavDisplay` with the custom `MeshtasticNavDisplay` in `AppIntroductionScreen` to centralize navigation and backstack handling. - Update `DesktopMainScreen` to transition from a persistent `NavigationRail` to an adaptive navigation shell. - Clean up unused imports related to `NavigationRail`, `NavKey`, and `NavDisplay` across desktop and intro features. --- .../kotlin/org/meshtastic/desktop/ui/DesktopMainScreen.kt | 3 +-- .../org/meshtastic/feature/intro/AppIntroductionScreen.kt | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/desktop/src/main/kotlin/org/meshtastic/desktop/ui/DesktopMainScreen.kt b/desktop/src/main/kotlin/org/meshtastic/desktop/ui/DesktopMainScreen.kt index f35c5fc58..4d32bc16c 100644 --- a/desktop/src/main/kotlin/org/meshtastic/desktop/ui/DesktopMainScreen.kt +++ b/desktop/src/main/kotlin/org/meshtastic/desktop/ui/DesktopMainScreen.kt @@ -19,7 +19,6 @@ package org.meshtastic.desktop.ui import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.NavigationRail import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -34,7 +33,7 @@ import org.meshtastic.core.ui.viewmodel.UIViewModel import org.meshtastic.desktop.navigation.desktopNavGraph /** - * Desktop main screen — Navigation 3 shell with a persistent [NavigationRail] and shared [MeshtasticNavDisplay]. + * Desktop main screen — Navigation 3 shell with adaptive navigation and shared [MeshtasticNavDisplay]. * * Uses the same shared routes from `core:navigation` and the same `MeshtasticNavDisplay` + `entryProvider` pattern as * the Android app, proving the shared backstack architecture works across targets. diff --git a/feature/intro/src/androidMain/kotlin/org/meshtastic/feature/intro/AppIntroductionScreen.kt b/feature/intro/src/androidMain/kotlin/org/meshtastic/feature/intro/AppIntroductionScreen.kt index 943818301..8437255cf 100644 --- a/feature/intro/src/androidMain/kotlin/org/meshtastic/feature/intro/AppIntroductionScreen.kt +++ b/feature/intro/src/androidMain/kotlin/org/meshtastic/feature/intro/AppIntroductionScreen.kt @@ -19,9 +19,7 @@ package org.meshtastic.feature.intro import android.Manifest import android.os.Build import androidx.compose.runtime.Composable -import androidx.navigation3.runtime.NavKey import androidx.navigation3.runtime.rememberNavBackStack -import androidx.navigation3.ui.NavDisplay import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.PermissionState import com.google.accompanist.permissions.rememberMultiplePermissionsState @@ -58,9 +56,8 @@ fun AppIntroductionScreen(onDone: () -> Unit, viewModel: IntroViewModel) { val backStack = rememberNavBackStack(Welcome) - NavDisplay( + org.meshtastic.core.ui.component.MeshtasticNavDisplay( backStack = backStack, - onBack = { backStack.removeLastOrNull() }, entryProvider = introNavGraph( backStack = backStack,