Skip to content

Conversation

@ovitrif
Copy link
Collaborator

@ovitrif ovitrif commented Dec 23, 2025

Resolves #480

Description

This PR migrates the entire navigation system from legacy Compose Navigation (NavController) to the newly stable Navigation 3 (Nav3).

Key changes:

  • Updated all navigation usage with Nav3 primitives
  • Moved all navigation code to its dedicated nav package
  • Moved all type-safe route definitions to Routes.kt sealed interface
  • Introduced Navigator class centralising navigation logic
  • Added SheetSceneStrategy for custom bottom sheets
  • Replaced material3 BottomSheetScaffold with custom sheet implementation
  • Entry handlers in nav/entries/ for all screen and sheet routes
  • Removed legacy code and old sheet implementations
  • Updated 55+ screens from NavController to Navigator pattern
  • Net reduction of +3k lines of code
  • TabBar now slides out below the viewport when showing sheets or non-wallet screens

Preview

nav3.mp4

QA Notes

  • Verify all screen navigation works (back buttons, forward navigation)
  • Test all bottom sheets open and close correctly
  • Verify sheet dismiss behavior (swipe down, back button, overlay tap)
  • Test deep link handling
  • Test timed sheets (backup reminder, app update, etc.)
  • Verify drawer menu navigation
  • Test QR scanner navigation flow
  • Verify settings screens navigation hierarchy
  • Verify app with pin on launch enabled
  • Verify auto-read clipboard enabled

@ovitrif ovitrif self-assigned this Dec 23, 2025
@ovitrif ovitrif force-pushed the feat/nav3 branch 10 times, most recently from 232e470 to a72fc22 Compare December 24, 2025 12:49
@ovitrif ovitrif requested a review from jvsena42 December 24, 2025 12:58
@ovitrif ovitrif marked this pull request as ready for review December 24, 2025 12:58
@ovitrif ovitrif removed the request for review from jvsena42 December 24, 2025 13:01
@ovitrif ovitrif marked this pull request as draft December 24, 2025 13:01
@ovitrif
Copy link
Collaborator Author

ovitrif commented Dec 24, 2025

re-drafted because it's not yet ready

@ovitrif ovitrif force-pushed the feat/nav3 branch 3 times, most recently from 5b5fe6e to e73fbef Compare December 24, 2025 13:25
@jvsena42 jvsena42 mentioned this pull request Dec 24, 2025
9 tasks
@ovitrif ovitrif force-pushed the feat/nav3 branch 2 times, most recently from 0ce73a0 to 595dfbb Compare December 26, 2025 14:13
@ovitrif ovitrif marked this pull request as ready for review December 27, 2025 12:08
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.

refactor: use Nav3, pass rust types to screens and add navigation viewmodel

2 participants