42c96fc32955

feat: Make Peach identity return home (v2.14.21)

time
2026-08-14 16:19 UTC · 2 months ago
machine
koh2
agent
gpt-5.6-sol
session
wordmark home and notes chrome
parent
44f8e7bf1609
6 files VERSION+1 −1app/src/main/java/com/peachpasswords/ui/PeachAppNavHost.kt+2 −0app/src/main/java/com/peachpasswords/ui/vault/EntryDeckChrome.kt+4 −2app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt+1 −1app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt+2 −1app/src/main/java/com/peachpasswords/ui/vault/NotesModeScreen.kt+15 −32
VERSION+1 −1
@@ -1 +1 @@1-2.14.201+2.14.21

view file

app/src/main/java/com/peachpasswords/ui/PeachAppNavHost.kt+2 −0
@@ -285,6 +285,7 @@285285                 EntryEditScreen(286286                     id = null,287287                     onBack = back,288+                    onHome = { nav(PeachNav.VaultList) },288289                     onOpenNote = { noteId ->289290                         navController.navigate(PeachNav.NotesMode.of(noteId)) {290291                             popUpTo(PeachNav.EntryEdit.ROUTE) { inclusive = true }@@ -295,6 +296,7 @@295296                 EntryEditScreen(296297                     id = editId,297298                     onBack = back,299+                    onHome = { nav(PeachNav.VaultList) },298300                     onOpenNote = { noteId -> nav(PeachNav.NotesMode(noteId)) },299301                 )300302             }

view file

app/src/main/java/com/peachpasswords/ui/vault/EntryDeckChrome.kt+4 −2
@@ -38,12 +38,14 @@3838 import com.peachpasswords.ui.theme.peachColors3939 4040 @Composable41-internal fun PeachVaultIdentity(section: String) {41+internal fun PeachVaultIdentity(section: String, onHome: () -> Unit) {4242     Row(4343         Modifier.fillMaxWidth().height(64.dp),4444         verticalAlignment = Alignment.CenterVertically,4545     ) {46-        PeachWordmark()46+        Box(Modifier.clickable(onClickLabel = "Open vault") { onHome() }) {47+            PeachWordmark()48+        }4749         Spacer(Modifier.width(PeachSpacing.md))4850         Text(section.uppercase(), color = peachColors.T2, style = PeachType.labelMono.copy(letterSpacing = 0.08.em))4951     }

view file

app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt+1 −1
@@ -147,7 +147,7 @@147147                     .verticalScroll(rememberScrollState())148148                     .padding(horizontal = PeachSpacing.xl),149149             ) {150-                PeachVaultIdentity("vault")150+                PeachVaultIdentity("vault") { onNavigate(PeachNav.VaultList) }151151                 Spacer(Modifier.height(PeachSpacing.xxl))152152 153153                 if (e == null) {

view file

app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt+2 −1
@@ -64,6 +64,7 @@6464 fun EntryEditScreen(6565     id: String?,6666     onBack: () -> Unit,67+    onHome: () -> Unit,6768     onOpenNote: (String) -> Unit = {},6869     vm: EntryEditViewModel = hiltViewModel(),6970 ) {@@ -87,7 +88,7 @@8788                 .statusBarsPadding()8889                 .padding(horizontal = PeachSpacing.xl),8990         ) {90-            PeachVaultIdentity(editTitleBarLabel(vm.isNew, f.type))91+            PeachVaultIdentity(editTitleBarLabel(vm.isNew, f.type), onHome)9192 9293             Spacer(Modifier.height(PeachSpacing.lg))9394 

view file

app/src/main/java/com/peachpasswords/ui/vault/NotesModeScreen.kt+15 −32
@@ -141,29 +141,9 @@141141                 .statusBarsPadding()142142                 .padding(horizontal = PeachSpacing.lg, vertical = PeachSpacing.md),143143         ) {144-            Surface(145-                modifier = Modifier.fillMaxWidth(),146-                color = peachColors.S1,147-                contentColor = peachColors.T0,148-                shape = RoundedCornerShape(PeachSpacing.lg),149-                tonalElevation = 1.dp,150-            ) {151-                Row(152-                    Modifier153-                        .fillMaxWidth()154-                        .height(56.dp)155-                        .padding(horizontal = PeachSpacing.sm),156-                    verticalAlignment = Alignment.CenterVertically,157-                ) {158-                    Icon(159-                        Icons.AutoMirrored.Rounded.ArrowBack,160-                        contentDescription = "back",161-                        tint = peachColors.T0,162-                        modifier = Modifier.size(40.dp).clip(CircleShape)163-                            .clickable { vm.saveNow(title, noteStorageText(body.text, isHtml)); vm.showToc() }164-                            .padding(8.dp),165-                    )166-                    Box(Modifier.weight(1f).padding(horizontal = PeachSpacing.xs)) {144+            PeachVaultIdentity("notes") { onNavigate(PeachNav.VaultList) }145+            FieldShell("title") {146+                    Box(Modifier.weight(1f)) {167147                         if (title.isEmpty()) {168148                             Text(169149                                 "untitled note",@@ -185,12 +165,7 @@185165                             modifier = Modifier.fillMaxWidth(),186166                         )187167                     }188-                    Text(189-                        "saved.",190-                        color = peachColors.T2,191-                        style = TextStyle(fontFamily = PeachType.Mono, fontSize = 9.sp),192-                        modifier = Modifier.padding(end = PeachSpacing.sm).alpha(savedAlpha),193-                    )168+                    Text("saved.", color = peachColors.T2, style = PeachType.labelMono, modifier = Modifier.alpha(savedAlpha))194169                     Icon(195170                         Icons.Outlined.DeleteOutline,196171                         contentDescription = "delete note",@@ -199,7 +174,6 @@199174                             .clickable { vm.delete {} }200175                             .padding(8.dp),201176                     )202-                }203177             }204178 205179             if (e == null) {@@ -233,7 +207,7 @@233207             }234208 235209             // Content area.236-            Box(Modifier.fillMaxSize().padding(vertical = PeachSpacing.sm)) {210+            Box(Modifier.weight(1f).fillMaxWidth().padding(vertical = PeachSpacing.sm)) {237211                 if (body.text.isEmpty()) {238212                     Text(239213                         "Start writing…",@@ -258,6 +232,15 @@258232                     )259233                 }260234             }235+            PeachDeckBottomBar(236+                onSearch = { vm.saveNow(title, noteStorageText(body.text, isHtml)); vm.showToc() },237+                onAdd = vm::createNote,238+                onNotes = { vm.saveNow(title, noteStorageText(body.text, isHtml)); vm.showToc() },239+                onSettings = { onNavigate(PeachNav.Settings) },240+                onLock = vm::lock,241+                onSwipeUp = { onNavigate(PeachNav.VaultList) },242+                notesSelected = true,243+            )261244         }262245     }263246 }@@ -344,7 +327,7 @@344327                         )345328                     }346329                 }347-            } else PeachVaultIdentity("notes")330+            } else PeachVaultIdentity("notes") { onNavigate(PeachNav.VaultList) }348331             Spacer(Modifier.size(PeachSpacing.lg))349332 350333             LazyColumn(

view file