Skip to content

refactor: migrate to Navigation 3 with connected composable overloads#600

Merged
mtrewartha merged 1 commit intomainfrom
nav3
Mar 22, 2026
Merged

refactor: migrate to Navigation 3 with connected composable overloads#600
mtrewartha merged 1 commit intomainfrom
nav3

Conversation

@mtrewartha
Copy link
Copy Markdown
Owner

Summary

  • Migrates from the previous navigation setup to Navigation 3 (NavDisplay, NavKey, entryProvider)
  • Introduces "connected" composable overloads in each feature module (LocationView, CompassView, SunView, SettingsView) that internally create their ViewModel, collect state, and provide CompositionLocals — decoupling the app module from feature internals
  • Moves the coordinatesFormatter helper from MainView into the location module as rememberCoordinatesFormatter in the locals package, where it belongs alongside LocalCoordinatesFormatter
  • Simplifies MainView.kt so each nav entry only passes navigation callbacks and app-level concerns (sharing intents, license/privacy URLs)
  • Extracts nav entry definitions into focused extension functions (locationEntries, compassEntries, sunEntries, settingsEntries)

Test plan

  • ./gradlew assembleDebug — compiles successfully
  • ./gradlew test — all tests pass
  • Manual: navigate between all 4 tabs, open each help screen, share coordinates, change settings, verify theme switching works

🤖 Generated with Claude Code

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 22, 2026

@mtrewartha mtrewartha merged commit f031038 into main Mar 22, 2026
3 of 4 checks passed
@mtrewartha mtrewartha deleted the nav3 branch March 22, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant