Files
amethyst/commons
Claude 341447c264 refactor: move the Route catalog to commons and INav to commonsUI
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
2026-09-23 16:53:56 +00:00
..