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
↓ peach-android-42c96fc3.tar.gzatlas at this save
files changed6 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 −32app/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 }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 }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) {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 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(