refactor: leverage CMP 1.11 + Lifecycle 2.11 — v2 test API, Json privacy, dropUnlessResumed nav guards (#5112)

This commit is contained in:
James Rich 2026-04-13 15:02:31 -05:00 committed by GitHub
parent 76386e419c
commit 938a951737
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 114 additions and 63 deletions

View file

@ -19,6 +19,7 @@ package org.meshtastic.feature.node.navigation
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
import androidx.compose.material3.adaptive.navigation3.ListDetailSceneStrategy
import androidx.compose.runtime.Composable
import androidx.lifecycle.compose.dropUnlessResumed
import androidx.navigation3.runtime.EntryProviderScope
import androidx.navigation3.runtime.NavBackStack
import androidx.navigation3.runtime.NavKey
@ -116,9 +117,9 @@ fun EntryProviderScope<NavKey>.nodeDetailGraph(
nodeId = destNum,
viewModel = nodeDetailViewModel,
compassViewModel = compassViewModel,
navigateToMessages = { backStack.add(ContactsRoute.Messages(it)) },
onNavigate = { backStack.add(it) },
onNavigateUp = { backStack.removeLastOrNull() },
navigateToMessages = { key -> backStack.add(ContactsRoute.Messages(key)) },
onNavigate = { route -> backStack.add(route) },
onNavigateUp = dropUnlessResumed { backStack.removeLastOrNull() },
)
}
@ -128,7 +129,7 @@ fun EntryProviderScope<NavKey>.nodeDetailGraph(
TracerouteLogScreen(
viewModel = metricsViewModel,
onNavigateUp = { backStack.removeLastOrNull() },
onNavigateUp = dropUnlessResumed { backStack.removeLastOrNull() },
onViewOnMap = { requestId, responseLogUuid ->
backStack.add(
NodeDetailRoute.TracerouteMap(
@ -182,7 +183,7 @@ private inline fun <reified R : Route> EntryProviderScope<NavKey>.addNodeDetailS
val metricsViewModel = koinViewModel<MetricsViewModel> { parametersOf(destNum) }
metricsViewModel.setNodeId(destNum)
routeInfo.screenComposable(metricsViewModel) { backStack.removeLastOrNull() }
routeInfo.screenComposable(metricsViewModel, dropUnlessResumed { backStack.removeLastOrNull() })
}
}