feat(map): keep award filter selection across page switches

The award chip (VUCC/DXCC/WAJA/...) now lives in an Activity-scoped
MapFilterViewModel instead of a per-composition remember, so switching
to another page and back keeps the last selection; it resets to VUCC
only once per process (cold start). Removes the effect that forced
VUCC on every grid-mode entry.
This commit is contained in:
atsunatsu committed 2026-09-17 12:57:36 +08:00
1 parent c89e79e28f
commit b47bd78ecd
3 files changed
+48 -13

No files matched your search

@@ -81,6 +81,7 @@ import com.rtbishop.look4sat.core.presentation.Screen
import com.rtbishop.look4sat.core.presentation.hasEnoughHeight
import com.rtbishop.look4sat.core.presentation.hasEnoughWidth
import com.rtbishop.look4sat.feature.map.MapDestination
import com.rtbishop.look4sat.feature.map.MapFilterViewModel
import com.rtbishop.look4sat.feature.mutual.MutualScreen
import com.rtbishop.look4sat.feature.mutual.MutualViewModel
import com.rtbishop.look4sat.feature.passes.PassesDestination
@@ -169,6 +170,12 @@ fun MainScreen(
viewModelStoreOwner = context as ViewModelStoreOwner,
factory = MutualViewModel.factory(container)
)
// Activity-scoped so the map's award filter survives page switches;
// resets to VUCC only on cold start (fresh process).
val mapFilterViewModel: MapFilterViewModel = viewModel(
viewModelStoreOwner = context as ViewModelStoreOwner,
factory = MapFilterViewModel.factory()
)
CompositionLocalProvider(
LocalElevationThresholds provides ElevationThresholds(
@@ -237,7 +244,7 @@ fun MainScreen(
)
}
entry<Screen.Map> {
MapDestination()
MapDestination(mapFilterViewModel = mapFilterViewModel)
}
entry<Screen.Mutual> {
MutualScreen(