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
4 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 −8
app/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,

view file

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 {

view file

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 

view file

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

view file