dfb3e513e48e
route the entry-deck Notes action to the notes table of contents instead of a notes-filtered vault list
- time
- 2026-07-25 01:06 UTC · 3 months ago
- machine
- koh2
- agent
- claude-opus-5
- session
- notes icon destination
- parent
- df43a3a2a1bd
↓ peach-android-dfb3e513.tar.gzatlas at this save
files changed4 files
app/src/main/java/com/peachpasswords/ui/PeachAppNavHost.kt+4 −8app/src/main/java/com/peachpasswords/ui/PeachNav.kt+3 −4app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt+1 −1app/src/main/java/com/peachpasswords/ui/vault/VaultListScreen.kt+0 −8app/src/main/java/com/peachpasswords/ui/PeachAppNavHost.kt+4 −8
@@ -180,14 +180,10 @@180180 onBack = if (hasOrigin) ({ navController.popBackStack() }) else null,181181 )182182 }183- composable(PeachNav.VaultNotes.route) {184- val hasOrigin = navController.previousBackStackEntry != null185- VaultListScreen(186- onNavigate = nav,187- onBack = if (hasOrigin) ({ navController.popBackStack() }) else null,188- startNoteOnly = true,189- )190- }183+ // No {id}: NotesModeScreen opens on its table of contents, which is the184+ // actual notes surface. The notes filter on the vault list is a filter,185+ // not this.186+ composable(PeachNav.Notes.route) { NotesModeScreen(onBack = back) }191187 192188 composable(193189 route = PeachNav.EntryDetail.ROUTE,app/src/main/java/com/peachpasswords/ui/PeachNav.kt+3 −4
@@ -10,10 +10,9 @@1010 data object Lock : PeachNav("lock")1111 data object VaultList : PeachNav("vault")1212 13- /** Same list, pre-filtered to notes — the closest Android equivalent to the14- * browser's dedicated secure-notes overlay, reached from the entry-deck15- * chrome's "Notes" action. */16- data object VaultNotes : PeachNav("vault/notes")13+ /** The notes surface itself — [NotesMode]'s table of contents, with no note14+ * open yet. Reached from the entry-deck chrome's "Notes" action. */15+ data object Notes : PeachNav("notes")1716 1817 data class EntryDetail(val id: String) : PeachNav("entry/$id") {1918 companion object {app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt+1 −1
@@ -172,7 +172,7 @@172172 },173173 onAddEntry = { onNavigate(PeachNav.EntryEdit(null)) },174174 onSettings = { onNavigate(PeachNav.Settings) },175- onOpenNotes = { onNavigate(PeachNav.VaultNotes) },175+ onOpenNotes = { onNavigate(PeachNav.Notes) },176176 )177177 Spacer(Modifier.height(PeachSpacing.lg))178178 app/src/main/java/com/peachpasswords/ui/vault/VaultListScreen.kt+0 −8
@@ -118,17 +118,9 @@118118 // search strip — slide back down to collapse to that entry. Null when119119 // the list itself is the deck root (e.g. empty vault, nothing to open).120120 onBack: (() -> Unit)? = null,121- // True when reached via the entry-deck chrome's "Notes" action — pre-applies122- // the notes filter pill so the list opens already scoped to notes, the123- // closest equivalent to the browser's dedicated secure-notes overlay.124- startNoteOnly: Boolean = false,125121 modifier: Modifier = Modifier,126122 vm: VaultListViewModel = hiltViewModel(),127123 ) {128- LaunchedEffect(Unit) {129- if (startNoteOnly && !vm.noteOnly.value) vm.toggleNoteFilter()130- }131-132124 // Android never prompts to pick an autofill service, so a user who doesn't133125 // go hunting in system settings gets a password manager that silently does134126 // nothing on other apps' login screens. Offered once, on the first look at