mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
INav is the second most common dependency of the app's composables (every
screen and most note renderers take `nav: INav`), and it only depended on
the Route catalog. Moving both frees everything that navigates but does
not need the Android NavHost.
- Routes.kt (the @Serializable Route hierarchy, DiscoverTab, GeocacheTab,
isSameRoute) is headless, so it goes to commons, not commonsUI.
BookmarkType, a Route argument, follows it down from commonsUI.
- The three NavHostController helpers (isBaseRoute,
consumesSharesInPlace, getRouteWithArguments) are androidx.navigation
and stay in the app as RouteNavController.kt.
- INav (DrawerState + a @Composable canPop) goes to commonsUI.
Routes are never persisted by serial name (navigation encodes them only
into the in-memory back stack), so the package change is safe; the two
proguard keep rules for route-argument enums follow the classes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168wY9t7i9NC5u3svyMxEz6