From 7f85d1ed8111d81ead376784c23562b5aa0c7e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9A=A9=EC=9D=80?= Date: Thu, 13 Aug 2026 09:36:31 +0900 Subject: [PATCH 1/3] fix(trash): keep Recover/Delete visible with long titles (#298) A trashed note's title had no width bound inside the row, so a long title measured to the full row width and pushed the action buttons off the right edge of the screen (reported as missing or as an 'elongated streak'). Constrain the title with weight(1f) + TextOverflow.Ellipsis, matching the other list screens. Adds a Robolectric regression test that fails on the old layout (Recover not displayed) and passes on the new one. --- .../notes/feature/trash/TrashScreen.kt | 5 +- .../notes/feature/trash/TrashScreenTest.kt | 117 ++++++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 app/src/testDebug/java/com/markleaf/notes/feature/trash/TrashScreenTest.kt diff --git a/app/src/main/java/com/markleaf/notes/feature/trash/TrashScreen.kt b/app/src/main/java/com/markleaf/notes/feature/trash/TrashScreen.kt index 9003305e..3cf537a0 100644 --- a/app/src/main/java/com/markleaf/notes/feature/trash/TrashScreen.kt +++ b/app/src/main/java/com/markleaf/notes/feature/trash/TrashScreen.kt @@ -40,6 +40,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.markleaf.notes.R import com.markleaf.notes.ui.component.EmptyState @@ -126,7 +127,9 @@ fun TrashScreen( Text( text = if (note.title.isBlank()) stringResource(R.string.untitled_parenthesized) else note.title, style = MaterialTheme.typography.titleMedium, - maxLines = 1 + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.weight(1f) ) Row { Button(onClick = { viewModel.restoreFromTrash(note.id) }) { diff --git a/app/src/testDebug/java/com/markleaf/notes/feature/trash/TrashScreenTest.kt b/app/src/testDebug/java/com/markleaf/notes/feature/trash/TrashScreenTest.kt new file mode 100644 index 00000000..d2185b2f --- /dev/null +++ b/app/src/testDebug/java/com/markleaf/notes/feature/trash/TrashScreenTest.kt @@ -0,0 +1,117 @@ +package com.markleaf.notes.feature.trash + +import androidx.activity.ComponentActivity +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onAllNodesWithText +import androidx.compose.ui.test.onNodeWithText +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.markleaf.notes.R +import com.markleaf.notes.domain.model.Note +import com.markleaf.notes.domain.repository.NoteRepository +import com.markleaf.notes.ui.theme.MarkleafTheme +import com.markleaf.notes.ui.viewmodel.TrashViewModel +import java.time.Instant +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flowOf +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +/** + * Regression tests for #298: with a long note title the trash row used to give + * the title the whole width, squeezing the Recover/Delete actions into the last + * ~150dp of the row — overlapped by the title and easy to miss or tap wrong. + */ +@RunWith(AndroidJUnit4::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(sdk = [33], qualifiers = "w411dp-h891dp-mdpi") +class TrashScreenTest { + + @get:Rule + val composeRule = createAndroidComposeRule() + + @Test + fun longTitleKeepsRecoverAndDeleteVisible() { + val longTitle = "A very long note title that must never fit on one phone row ".repeat(4) + val viewModel = TrashViewModel(FakeNoteRepository(longTitleNote(longTitle))) + + composeRule.setContent { + MarkleafTheme(dynamicColor = false) { + TrashScreen(viewModel = viewModel, onBack = {}) + } + } + + // Wait for the ViewModel flow to be collected and the row composed. + val deleteText = composeRule.activity.getString(R.string.delete) + composeRule.waitUntil(timeoutMillis = 5_000) { + composeRule.onAllNodesWithText(deleteText).fetchSemanticsNodes().isNotEmpty() + } + + val restoreText = composeRule.activity.getString(R.string.restore) + composeRule.onNodeWithText(restoreText).assertIsDisplayed() + composeRule.onNodeWithText(deleteText).assertIsDisplayed() + + // The title must end where the actions begin, not underneath them. + // Before the fix it measured to the full row width and the buttons were + // pushed into the row's tail, overlapped by the title text. + val titleBounds = composeRule + .onNodeWithText(longTitle, substring = true) + .fetchSemanticsNode() + .boundsInRoot + val restoreBounds = composeRule.onNodeWithText(restoreText) + .fetchSemanticsNode() + .boundsInRoot + val deleteBounds = composeRule.onNodeWithText(deleteText) + .fetchSemanticsNode() + .boundsInRoot + assertTrue( + "Title must not overlap the Recover button (title.right=${titleBounds.right}, recover.left=${restoreBounds.left})", + titleBounds.right <= restoreBounds.left + 0.1f + ) + assertTrue( + "Recover must sit left of Delete (recover.right=${restoreBounds.right}, delete.left=${deleteBounds.left})", + restoreBounds.right <= deleteBounds.left + 0.1f + ) + } + + private fun longTitleNote(title: String) = Note( + id = "trashed-long-title", + title = title, + contentMarkdown = "body", + excerpt = "An excerpt that is also fairly long", + createdAt = Instant.now(), + updatedAt = Instant.now(), + trashed = true, + deletedAt = Instant.now() + ) + + private class FakeNoteRepository(private val note: Note) : NoteRepository { + override fun observeNotes(): Flow> = flowOf(emptyList()) + override suspend fun getNote(noteId: String): Note? = null + override suspend fun getAllNotes(): List = emptyList() + override suspend fun createNote(note: Note) = Unit + override suspend fun updateNote(note: Note) = Unit + override suspend fun updateDerivedTitle( + noteId: String, + title: String, + excerpt: String + ) = Unit + override suspend fun moveToTrash(noteId: String) = Unit + override suspend fun setPinned(noteId: String, pinned: Boolean) = Unit + override suspend fun setArchived(noteId: String, archived: Boolean) = Unit + override suspend fun restoreFromTrash(noteId: String) = Unit + override suspend fun deleteForever(noteId: String) = Unit + override suspend fun reorderNotes(notes: List) = Unit + override fun observeTrashedNotes(): Flow> = flowOf(listOf(note)) + override fun observeArchivedNotes(): Flow> = flowOf(emptyList()) + override fun observeLockedNotes(): Flow> = flowOf(emptyList()) + override suspend fun setLocked(noteId: String, locked: Boolean) = Unit + override suspend fun unlockAllLocked() = Unit + override fun searchNotes(query: String): Flow> = flowOf(emptyList()) + override fun observeConflictNotes(): Flow> = flowOf(emptyList()) + } +} From efc6957ee743b740e5585687af603b960e0a1cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9A=A9=EC=9D=80?= Date: Thu, 13 Aug 2026 09:42:42 +0900 Subject: [PATCH 2/3] release: v2.32.3 (versionCode 125) Ships the #298 trash-screen fix: long note titles no longer push the Recover/Delete actions off the right edge. - versionCode 124 -> 125, versionName 2.32.2 -> 2.32.3 - CHANGELOG.md and CHANGELOG.ko.md gain the v2.32.3 section - seven store-locale 125.txt: 253 characters in English, 334 at the longest, every locale keeping well below the 500 cap (zh-CN's first) - landing x7 (softwareVersion, release-line, trust-ledger) and README x7 release links move to v2.32.3; the figcaption screenshot version stays at v2.23.0, which is what it documents --- CHANGELOG.ko.md | 7 +++++++ CHANGELOG.md | 7 +++++++ HISTORY.md | 9 +++++++++ README.de.md | 4 ++-- README.es.md | 4 ++-- README.fr.md | 4 ++-- README.ja.md | 4 ++-- README.ko.md | 4 ++-- README.md | 4 ++-- README.zh.md | 4 ++-- app/build.gradle.kts | 4 ++-- docs/index.de.html | 8 ++++---- docs/index.es.html | 8 ++++---- docs/index.fr.html | 8 ++++---- docs/index.html | 8 ++++---- docs/index.ja.html | 8 ++++---- docs/index.ko.html | 8 ++++---- docs/index.zh.html | 8 ++++---- fastlane/metadata/android/de-DE/changelogs/125.txt | 1 + fastlane/metadata/android/en-US/changelogs/125.txt | 1 + fastlane/metadata/android/es-ES/changelogs/125.txt | 1 + fastlane/metadata/android/fr-FR/changelogs/125.txt | 1 + fastlane/metadata/android/ja-JP/changelogs/125.txt | 1 + fastlane/metadata/android/ko-KR/changelogs/125.txt | 1 + fastlane/metadata/android/zh-CN/changelogs/125.txt | 1 + 25 files changed, 74 insertions(+), 44 deletions(-) create mode 100644 fastlane/metadata/android/de-DE/changelogs/125.txt create mode 100644 fastlane/metadata/android/en-US/changelogs/125.txt create mode 100644 fastlane/metadata/android/es-ES/changelogs/125.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/125.txt create mode 100644 fastlane/metadata/android/ja-JP/changelogs/125.txt create mode 100644 fastlane/metadata/android/ko-KR/changelogs/125.txt create mode 100644 fastlane/metadata/android/zh-CN/changelogs/125.txt diff --git a/CHANGELOG.ko.md b/CHANGELOG.ko.md index a28f8750..29a2896d 100644 --- a/CHANGELOG.ko.md +++ b/CHANGELOG.ko.md @@ -6,6 +6,13 @@ Markleaf의 주요 변경 사항을 기록합니다. 영어판이 기본이며 G v2.15.3 이전 항목은 이 파일에만 한국어로 보존되어 있습니다. +## v2.32.3 - 손이 닿는 곳에 남는 휴지통 버튼 (Trash actions that stay within reach) - 2026-08-13 + +휴지통 화면의 레이아웃 수정 한 건으로, F-Droid 설치본을 대상으로 스크린샷과 함께 제보되었습니다. 기능·권한·저장 형식 변경은 없습니다. + +### Fixed +- **제목이 길어도 복원·삭제 버튼이 화면에 남습니다 (#298).** 휴지통에서 노트 제목은 복원·삭제 버튼과 같은 줄을 쓰면서 너비 제한이 없어, 긴 제목이 줄 전체를 차지해 두 버튼을 화면 오른쪽 밖으로 밀어냈습니다 — "버튼이 아예 보이지 않거나 길게 늘어진다"는 제보와 일치하며, 삭제하려다 복원을 누르기 쉬웠습니다. 이제 제목은 버튼이 쓰고 남은 공간만 차지하고, 넘치면 줄임표로 잘립니다. 앱의 다른 모든 목록이 이미 제목에 주고 있는 처리입니다. + ## v2.32.2 - 이제 제대로 읽히는 인용문과 구분선 (Quoted lines and rules you can actually read) - 2026-08-05 편집기의 색 수정 두 건이며, 제보가 아니라 측정으로 찾았습니다. 기능·권한·저장 형식 변경은 없습니다. diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a31be34..13bdc096 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to Markleaf are documented in this file. This English editio > 💬 **Questions or feedback?** Start a thread in [GitHub Discussions](https://github.com/jeiel85/markleaf-android/discussions). Bug reports still belong in [Issues](https://github.com/jeiel85/markleaf-android/issues). +## v2.32.3 - Trash actions that stay within reach - 2026-08-13 + +One trash-screen layout fix, reported with screenshots against an F-Droid install. No feature, permission, or storage-format changes. + +### Fixed +- **Recover and Delete stay visible for long titles (#298).** In the trash bin, a note's title shared a row with the Recover and Delete buttons but had no width limit, so a long title measured across the whole row and pushed both buttons past the right edge of the screen — reported as buttons that "are either not present at all or are elongated", hard to hit without recovering a note by mistake. The title now takes only the room the buttons leave and ellipsizes when it runs out, the same treatment every other list in the app already gives its titles. + ## v2.32.2 - Quoted lines and rules you can actually read - 2026-08-05 Two editor colour fixes, both found by measuring rather than by report. No feature, permission, or storage-format changes. diff --git a/HISTORY.md b/HISTORY.md index b9bba22c..f168b614 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,12 @@ +## 2026-08-13 - Trash actions pushed off-screen by long titles, and v2.32.3 (#298) + +- Trigger: an F-Droid user on 2.32.2 reported that in the trash bin the Recover/Delete buttons are "either not present at all or are elongated", with screenshots showing the Recover button reduced to a sliver at the screen edge, and that the effect tracks title length (#298). +- Analysis: the trash row gives its title no width bound. The title `Text` measures to the full row width, and the action-buttons row then lands beyond the row's visible area, clipped at the screen edge. Every other list screen (notes, archive, locked, tags, search) constrains its title with `overflow = TextOverflow.Ellipsis`; TrashScreen was the only one without it. +- Contract/scope: the title gets `Modifier.weight(1f)` + `TextOverflow.Ellipsis` — it takes only the room the buttons leave and ellipsizes when it runs out, keeping both actions fully visible at the right edge for any title length. No behaviour, permission, or storage-format change. +- Implementation: PR #NNN. `TrashScreenTest` (Robolectric) renders a trash row whose title is longer than the screen and asserts both action texts are displayed, that the title's right edge does not cross the Recover button's left edge, and that Recover sits left of Delete. +- Verification: `testDebugUnitTest` (68 suites) + `:app:lintRelease` locally. The regression was proven both ways: with the old layout the test fails with Recover not displayed; with the fix it passes. No golden moved — the trash screen had none. +- Release: versionCode 124→125, versionName 2.32.2→2.32.3, CHANGELOG both editions, seven store-locale `125.txt` (zh-CN's first changelog), landing ×7 + README ×7. No hardening issue filed — issue-response work, and nothing here was a candidate the standing tracker did not already hold. + ## 2026-08-05 - The landing demo stops moving on its own, and the trust ledger stops advertising a stale feature (#262) - Trigger: the three Public surfaces items on the standing hardening tracker — a "current release" strapline covered by no check, demo GIFs that ignore `prefers-reduced-motion`, and ~940 KB per landing visit. The strapline had become visibly wrong rather than merely stale: v2.32.2 updated the version beside it, so a current `v2.32.2` sat next to "Includes Quiet Formatting", a feature two releases old, on all six pages. diff --git a/README.de.md b/README.de.md index abf75b45..cc520ffb 100644 --- a/README.de.md +++ b/README.de.md @@ -60,7 +60,7 @@ **Markleaf** ist eine Android-Markdown-Notiz-App, die bewusst auf Ballast verzichtet, damit du dich auf zwei Dinge konzentrieren kannst: festhalten und ordnen. Deine Daten liegen ausschließlich auf deinem Gerät, und das standardisierte Markdown-Format garantiert volle Eigentümerschaft und Portabilität. Auch die Synchronisierung läuft nur über *einen von dir gewählten Ordner* – Markleaf selbst geht nie online. -[**Branding-Seite ansehen**](https://jeiel85.github.io/markleaf-android/) · [Aktuelle Version: v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [Datenschutzerklärung](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**Branding-Seite ansehen**](https://jeiel85.github.io/markleaf-android/) · [Aktuelle Version: v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [Datenschutzerklärung](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Google-Play-Updates sind derzeit ausgesetzt.** Bis eine koreanische Gewerbeanmeldungs-Anforderung für den Einzelentwickler geklärt ist, werden keine neuen Versionen in den Play Store geladen. Die aktuelle Version bekommst du über **GitHub Releases**. Sobald der F-Droid-Build nachgezogen hat, ist F-Droid der empfohlene Update-Weg. (Wenn du sie bereits aus dem Play Store installiert hast, funktioniert sie weiterhin.) - **F-Droid** *(für automatische Updates empfohlen)*: [Markleaf on F-Droid](https://f-droid.org/packages/com.markleaf.notes/) – im F-Droid-Client suchen oder über den Link oben installieren. Der Katalog kann später als GitHub veröffentlichen; falls die aktuelle Version noch nicht angezeigt wird, nutze unten GitHub Releases. Es wird derselbe Signaturschlüssel (SHA-256 `0be97352…f91a`) verwendet, sodass Updates auch nach einem ersten Sideload eines GitHub-APKs nahtlos weiterlaufen. -- **Direkte APK-Installation**: lade das APK aus dem [GitHub-v2.32.2-Release](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) herunter und führe es auf deinem Android-Gerät aus. +- **Direkte APK-Installation**: lade das APK aus dem [GitHub-v2.32.3-Release](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) herunter und führe es auf deinem Android-Gerät aus. - **Google Play**: [Markleaf on Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) – **Updates sind ausgesetzt** (siehe Hinweis oben). Wenn du die App bereits hast, funktioniert sie weiter; die aktuelle Version gibt es über GitHub Releases oder nach Veröffentlichung über F-Droid. ### Aus dem Quellcode bauen diff --git a/README.es.md b/README.es.md index 1f2d6b19..c995d6be 100644 --- a/README.es.md +++ b/README.es.md @@ -60,7 +60,7 @@ **Markleaf** es una app de notas Markdown para Android diseñada para eliminar lo superfluo y dejarte concentrar en solo dos cosas: capturar y organizar. Tus datos se guardan únicamente en tu dispositivo, y el formato Markdown estándar garantiza la propiedad total y la portabilidad de tus datos. Incluso la sincronización ocurre solo a través de *una carpeta que tú eliges* — Markleaf en sí nunca se conecta a internet. -[**Ver la página de branding**](https://jeiel85.github.io/markleaf-android/) · [Versión actual: v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [Política de privacidad](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**Ver la página de branding**](https://jeiel85.github.io/markleaf-android/) · [Versión actual: v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [Política de privacidad](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Las actualizaciones en Google Play están en pausa por ahora.** No se publicarán nuevas versiones en la Play Store hasta que se resuelva un requisito de política de registro de negocio en Corea para el desarrollador individual. Para obtener la versión actual, usa **GitHub Releases**. Cuando la compilación de F-Droid se haya puesto al día, F-Droid será la ruta de actualización recomendada. (Si ya la instalaste desde la Play Store, seguirá funcionando.) - **F-Droid** *(recomendado para actualizaciones automáticas)*: [Markleaf en F-Droid](https://f-droid.org/packages/com.markleaf.notes/) — búscalo en el cliente de F-Droid o instálalo con el enlace de arriba. El catálogo puede publicarse después de GitHub; si aún no muestra la versión actual, usa GitHub Releases a continuación. Usa la misma clave de firma (SHA-256 `0be97352…f91a`), así que las actualizaciones continúan sin problemas aunque primero instales por sideload un APK de GitHub. -- **Instalación directa del APK**: descarga el APK desde el [release v2.32.2 de GitHub](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2), y ejecútalo en tu dispositivo Android. +- **Instalación directa del APK**: descarga el APK desde el [release v2.32.3 de GitHub](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3), y ejecútalo en tu dispositivo Android. - **Google Play**: [Markleaf en Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **las actualizaciones están en pausa** (ver la nota de arriba). Si ya la tienes instalada, seguirá funcionando; obtén la versión actual desde GitHub Releases o desde F-Droid cuando esté disponible allí. ### Compilar desde el código fuente diff --git a/README.fr.md b/README.fr.md index d827aaa8..0f5882d8 100644 --- a/README.fr.md +++ b/README.fr.md @@ -60,7 +60,7 @@ **Markleaf** est une application Android de prise de notes Markdown conçue pour éliminer le superflu afin que vous puissiez vous concentrer sur seulement deux choses : capturer et organiser. Vos données sont stockées uniquement sur votre appareil, et le format Markdown standard garantit une propriété et une portabilité complètes. Même la synchronisation ne passe que par *un dossier que vous choisissez* — Markleaf lui-même ne se connecte jamais à internet. -[**Voir la page de branding**](https://jeiel85.github.io/markleaf-android/) · [Version actuelle : v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [Politique de confidentialité](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**Voir la page de branding**](https://jeiel85.github.io/markleaf-android/) · [Version actuelle : v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [Politique de confidentialité](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Les mises à jour sur Google Play sont actuellement en pause.** Aucune nouvelle version ne sera publiée sur le Play Store tant qu'une exigence de politique d'enregistrement d'entreprise en Corée pour le développeur indépendant ne sera pas résolue. Pour la version actuelle, utilisez **GitHub Releases**. Une fois que la compilation F-Droid est à jour, F-Droid reste le canal de mise à jour recommandé. (Si vous l'avez déjà installée depuis le Play Store, elle continue de fonctionner.) - **F-Droid** *(recommandé pour les mises à jour automatiques)* : [Markleaf sur F-Droid](https://f-droid.org/packages/com.markleaf.notes/) — recherchez-le dans le client F-Droid ou installez-le via le lien ci-dessus. Le catalogue peut être publié après GitHub ; s'il n'affiche pas encore la version actuelle, utilisez GitHub Releases ci-dessous. Il utilise la même clé de signature (SHA-256 `0be97352…f91a`), donc les mises à jour continuent sans interruption même si vous installez d'abord un APK GitHub par sideload. -- **Installation directe de l'APK** : téléchargez l'APK depuis la [release GitHub v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2), puis exécutez-le sur votre appareil Android. +- **Installation directe de l'APK** : téléchargez l'APK depuis la [release GitHub v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3), puis exécutez-le sur votre appareil Android. - **Google Play** : [Markleaf sur Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **les mises à jour sont en pause** (voir la note ci-dessus). Si vous l'avez déjà, elle continue de fonctionner ; obtenez la version actuelle via GitHub Releases ou via F-Droid une fois publiée. ### Compilation depuis les sources diff --git a/README.ja.md b/README.ja.md index 78ed1730..42b14944 100644 --- a/README.ja.md +++ b/README.ja.md @@ -60,7 +60,7 @@ **Markleaf** は、余計なものをそぎ落とし「記録」と「整理」だけに集中できるよう設計された Android 向け Markdown メモアプリです。データは端末内にのみ保存され、標準 Markdown 形式によってデータの所有権と移植性が完全に保証されます。同期も *あなたが選んだフォルダ* を介してのみ行われ、Markleaf 自体はインターネットに接続しません。 -[**ブランディングページを見る**](https://jeiel85.github.io/markleaf-android/) · [現在のバージョン: v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [プライバシーポリシー](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**ブランディングページを見る**](https://jeiel85.github.io/markleaf-android/) · [現在のバージョン: v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [プライバシーポリシー](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **現在、Google Play での更新は一時保留中です。** 個人開発者の韓国の事業者登録に関するポリシー要件が解決するまで、新しいバージョンは Play ストアに公開しません。最新リリースは **GitHub Releases** から入手してください。F-Droid のビルドが追いついた後は、F-Droid が推奨の更新経路です。(すでに Play ストアからインストール済みの場合はそのまま使えます。) - **F-Droid** *(自動更新に推奨)*: [Markleaf on F-Droid](https://f-droid.org/packages/com.markleaf.notes/) — F-Droid クライアントで検索するか、上のリンクから直接インストールできます。カタログへの公開は GitHub より遅れることがあるため、最新版がまだ表示されない場合は下の GitHub Releases を使ってください。同じ署名鍵(SHA-256 `0be97352…f91a`)を使用するため、最初に GitHub の APK をサイドロードしても更新は継続します。 -- **APK の直接インストール**: [GitHub v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) リリースから APK をダウンロードし、Android 端末で実行してインストールします。 +- **APK の直接インストール**: [GitHub v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) リリースから APK をダウンロードし、Android 端末で実行してインストールします。 - **Google Play**: [Markleaf on Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **更新は一時保留中**です(上の注記を参照)。すでにインストール済みなら引き続き使えます。最新版は GitHub Releases、または反映後の F-Droid から入手してください。 ### 開発環境の構築 diff --git a/README.ko.md b/README.ko.md index 51d66fdf..13f93c00 100644 --- a/README.ko.md +++ b/README.ko.md @@ -60,7 +60,7 @@ **Markleaf**는 군더더기를 덜어내고 오직 '기록'과 '정리'에만 집중할 수 있도록 설계된 Android Markdown 메모 앱입니다. 당신의 데이터는 오직 당신의 기기에만 저장되며, 표준 Markdown 형식을 사용하여 데이터의 소유권과 이식성을 완벽히 보장합니다. 동기화도 *당신이 선택한 폴더* 를 통해서만 일어납니다 — Markleaf 자체는 인터넷에 나가지 않습니다. -[**브랜딩 페이지 보기**](https://jeiel85.github.io/markleaf-android/) · [현재 버전: v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [Privacy Policy](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**브랜딩 페이지 보기**](https://jeiel85.github.io/markleaf-android/) · [현재 버전: v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [Privacy Policy](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Google Play 업데이트는 현재 잠정 보류 중입니다.** 1인 개발자의 한국 사업자 등록 요건 관련 정책 이슈가 정리될 때까지 새 버전을 Play Store에 올리지 않습니다. 최신 버전은 **GitHub Releases**에서 받으세요. F-Droid 빌드가 따라온 뒤에는 F-Droid가 권장 업데이트 경로입니다. (Play Store에 이미 설치돼 있다면 그대로 사용할 수 있습니다.) - **F-Droid** *(자동 업데이트용 권장)*: [Markleaf on F-Droid](https://f-droid.org/packages/com.markleaf.notes/) — F-Droid 클라이언트에서 검색하거나 위 링크로 바로 설치할 수 있습니다. 카탈로그 반영은 GitHub보다 늦을 수 있으므로, 아직 최신 버전이 보이지 않으면 아래 GitHub Releases를 사용하세요. 동일 서명 키(SHA-256 `0be97352…f91a`)를 사용하므로 처음 GitHub APK를 사이드로드했어도 업데이트가 이어집니다. -- **APK 직접 설치**: [GitHub v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) 릴리스에서 APK를 다운로드한 뒤 Android 기기에서 실행해 설치합니다. +- **APK 직접 설치**: [GitHub v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) 릴리스에서 APK를 다운로드한 뒤 Android 기기에서 실행해 설치합니다. - **Google Play**: [Markleaf on Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **업데이트 잠정 보류 중**입니다(위 안내 참고). 이미 설치돼 있으면 계속 쓸 수 있으며, 최신 버전은 GitHub Releases 또는 반영이 끝난 F-Droid에서 받으세요. ### 개발 환경 구축 diff --git a/README.md b/README.md index 67f5c149..22d4ab26 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ **Markleaf** is an Android Markdown note app designed to strip away the clutter so you can focus on just two things: capturing and organizing. Your data is stored only on your device, and standard Markdown guarantees full ownership and portability. Even sync happens only through *a folder you choose* — Markleaf itself never goes online. -[**View the branding page**](https://jeiel85.github.io/markleaf-android/) · [Current version: v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [Privacy Policy](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**View the branding page**](https://jeiel85.github.io/markleaf-android/) · [Current version: v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [Privacy Policy](https://jeiel85.github.io/markleaf-android/privacy.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Google Play updates are currently on hold.** New versions won't be pushed to the Play Store until a Korean business-registration policy requirement for the solo developer is resolved. For the current release, use **GitHub Releases**. F-Droid remains the recommended update path when its build has caught up. (If you already installed it from the Play Store, it keeps working.) - **F-Droid** *(recommended for automatic updates)*: [Markleaf on F-Droid](https://f-droid.org/packages/com.markleaf.notes/) — search in the F-Droid client or install via the link above. Its catalog may publish after GitHub; if it does not yet show the current version, use GitHub Releases below. It uses the same signing key (SHA-256 `0be97352…f91a`), so updates continue seamlessly even if you first sideload a GitHub APK. -- **Direct APK install**: download the APK from the [GitHub v2.32.2 release](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2), then run it on your Android device. +- **Direct APK install**: download the APK from the [GitHub v2.32.3 release](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3), then run it on your Android device. - **Google Play**: [Markleaf on Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **updates are paused** (see the note above). If you already have it, it keeps working; use GitHub Releases for the current version or F-Droid once it is available there. ### Building from source diff --git a/README.zh.md b/README.zh.md index b54d3a84..9fad6ee0 100644 --- a/README.zh.md +++ b/README.zh.md @@ -60,7 +60,7 @@ **Markleaf** 是一款 Android Markdown 笔记应用,它刻意剥离多余的东西,让你只专注于两件事:记录和整理。数据只保存在你的设备上,标准 Markdown 格式则保证了完整的所有权与可迁移性。就连同步也只通过 *你自己选择的文件夹* 进行 — Markleaf 本身从不联网。 -[**查看品牌页面**](https://jeiel85.github.io/markleaf-android/index.zh.html) · [当前版本:v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [隐私政策](https://jeiel85.github.io/markleaf-android/privacy.zh.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) +[**查看品牌页面**](https://jeiel85.github.io/markleaf-android/index.zh.html) · [当前版本:v2.32.3](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) · [隐私政策](https://jeiel85.github.io/markleaf-android/privacy.zh.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) --- @@ -167,7 +167,7 @@ com.markleaf.notes > **Google Play 更新目前处于暂停状态。** 在个人开发者的韩国营业执照政策要求解决之前,新版本不会推送到 Play 商店。要获取当前版本,请使用 **GitHub Releases**。当 F-Droid 的构建跟上后,它仍是推荐的更新渠道。(如果你已从 Play 商店安装,应用会继续正常使用。) - **F-Droid** *(推荐,可自动更新)*:[F-Droid 上的 Markleaf](https://f-droid.org/packages/com.markleaf.notes/) — 在 F-Droid 客户端中搜索,或通过上面的链接安装。它的目录可能晚于 GitHub 发布;如果暂时还没有显示当前版本,请使用下面的 GitHub Releases。它使用相同的签名密钥(SHA-256 `0be97352…f91a`),因此即使你先侧载了 GitHub 的 APK,后续更新也能无缝衔接。 -- **直接安装 APK**:从 [GitHub v2.32.2 发布页](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) 下载 APK,然后在你的 Android 设备上运行。 +- **直接安装 APK**:从 [GitHub v2.32.3 发布页](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.3) 下载 APK,然后在你的 Android 设备上运行。 - **Google Play**:[Google Play 上的 Markleaf](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **更新已暂停**(见上方说明)。如果你已经安装,它会继续可用;当前版本请用 GitHub Releases,或等 F-Droid 上架后使用 F-Droid。 ### 从源码构建 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ac7a881..67603785 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -62,8 +62,8 @@ android { applicationId = "com.markleaf.notes" minSdk = 26 targetSdk = 35 - versionCode = 124 - versionName = "2.32.2" + versionCode = 125 + versionName = "2.32.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/docs/index.de.html b/docs/index.de.html index ca05f315..ae8bc454 100644 --- a/docs/index.de.html +++ b/docs/index.de.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

Notizen auf deinem Gerät.
Gedanken in Markdown.Über F-Droid installieren GitHub APK -

Jetzt v2.32.2 · Kostenlos · Apache-2.0

+

Jetzt v2.32.3 · Kostenlos · Apache-2.0

Markleaf — Kotlin-Repository des Tages auf Trendshift, Platz 1 @@ -118,8 +118,8 @@

Notizen auf deinem Gerät.
Gedanken in Markdown.

Aktuelle Version

- v2.32.2 - Veröffentlicht am 2026-08-05 + v2.32.3 + Veröffentlicht am 2026-08-13

Netzwerkberechtigungen

diff --git a/docs/index.es.html b/docs/index.es.html index c16d48ef..21b0917f 100644 --- a/docs/index.es.html +++ b/docs/index.es.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

Notas en tu dispositivo.
Pensamientos en Markdown.< Instalar en F-Droid GitHub APK -

Ahora v2.32.2 · Gratis · Apache-2.0

+

Ahora v2.32.3 · Gratis · Apache-2.0

Markleaf — repositorio Kotlin del día n.º 1 en Trendshift @@ -118,8 +118,8 @@

Notas en tu dispositivo.
Pensamientos en Markdown.<

Versión actual

- v2.32.2 - Publicado el 2026-08-05 + v2.32.3 + Publicado el 2026-08-13

Permisos de red

diff --git a/docs/index.fr.html b/docs/index.fr.html index 7b3f590a..07eddcf5 100644 --- a/docs/index.fr.html +++ b/docs/index.fr.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

Notes sur votre appareil.
Pensées en Markdown.Installer sur F-Droid GitHub APK

-

Maintenant v2.32.2 · Gratuit · Apache-2.0

+

Maintenant v2.32.3 · Gratuit · Apache-2.0

Markleaf — dépôt Kotlin n° 1 du jour sur Trendshift @@ -118,8 +118,8 @@

Notes sur votre appareil.
Pensées en Markdown.

Version actuelle

- v2.32.2 - Publié le 2026-08-05 + v2.32.3 + Publié le 2026-08-13

Permissions réseau

diff --git a/docs/index.html b/docs/index.html index d0b269fd..4c9f417e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

Notes on your device.
Thoughts in Markdown.< Install on F-Droid GitHub APK -

Now v2.32.2 · Free · Apache-2.0

+

Now v2.32.3 · Free · Apache-2.0

Markleaf — #1 Kotlin repository of the day on Trendshift @@ -118,8 +118,8 @@

Notes on your device.
Thoughts in Markdown.<

Current release

- v2.32.2 - Released 2026-08-05 + v2.32.3 + Released 2026-08-13

Network permissions

diff --git a/docs/index.ja.html b/docs/index.ja.html index 3c7d4c12..82cff023 100644 --- a/docs/index.ja.html +++ b/docs/index.ja.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

ノートは端末に。
思考は Markdown で。< F-Droid でインストール GitHub APK

-

現在 v2.32.2 · 無料 · Apache-2.0

+

現在 v2.32.3 · 無料 · Apache-2.0

Markleaf — Trendshift のデイリー Kotlin リポジトリ 1 位 @@ -118,8 +118,8 @@

ノートは端末に。
思考は Markdown で。<

現在のリリース

- v2.32.2 - 2026-08-05 リリース + v2.32.3 + 2026-08-13 リリース

ネットワーク権限

diff --git a/docs/index.ko.html b/docs/index.ko.html index 0a9c2b1a..cc9c368f 100644 --- a/docs/index.ko.html +++ b/docs/index.ko.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

메모는 기기에.
생각은 Markdown으로.F-Droid에서 설치 GitHub APK

-

현재 v2.32.2 · 무료 · Apache-2.0

+

현재 v2.32.3 · 무료 · Apache-2.0

Markleaf — Trendshift 일간 Kotlin 저장소 1위 @@ -118,8 +118,8 @@

메모는 기기에.
생각은 Markdown으로.

현재 릴리스

- v2.32.2 - 2026-08-05 배포 + v2.32.3 + 2026-08-13 배포

네트워크 권한

diff --git a/docs/index.zh.html b/docs/index.zh.html index 2b7f64d4..67c1be25 100644 --- a/docs/index.zh.html +++ b/docs/index.zh.html @@ -41,7 +41,7 @@ "name": "Markleaf", "applicationCategory": "ProductivityApplication", "operatingSystem": "Android", - "softwareVersion": "2.32.2", + "softwareVersion": "2.32.3", "description": "A lightweight, local-first Markdown note app for Android.", "downloadUrl": "https://f-droid.org/packages/com.markleaf.notes/", "codeRepository": "https://github.com/jeiel85/markleaf-android", @@ -94,7 +94,7 @@

笔记留在设备上。
思考写成 Markdown。在 F-Droid 上安装 GitHub APK -

当前 v2.32.2 · 免费 · Apache-2.0

+

当前 v2.32.3 · 免费 · Apache-2.0

Markleaf — Trendshift 当日 Kotlin 仓库第 1 名 @@ -118,8 +118,8 @@

笔记留在设备上。
思考写成 Markdown。

当前版本

- v2.32.2 - 发布于 2026-08-05 + v2.32.3 + 发布于 2026-08-13

网络权限

diff --git a/fastlane/metadata/android/de-DE/changelogs/125.txt b/fastlane/metadata/android/de-DE/changelogs/125.txt new file mode 100644 index 00000000..3889087a --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/125.txt @@ -0,0 +1 @@ +Die Schaltflächen „Wiederherstellen“ und „Löschen“ im Papierkorb werden nicht mehr durch lange Notiztitel aus dem Bildschirm gedrängt. Sie bleiben immer vollständig rechts sichtbar, und der Titel wird stattdessen mit Auslassungspunkten gekürzt – so lässt sich eine Notiz zuverlässig löschen, egal wie lang ihr Name ist. diff --git a/fastlane/metadata/android/en-US/changelogs/125.txt b/fastlane/metadata/android/en-US/changelogs/125.txt new file mode 100644 index 00000000..d8c88ee0 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/125.txt @@ -0,0 +1 @@ +Recover and Delete buttons in the trash bin no longer get pushed off-screen by long note titles. They now stay fully visible on the right, and the title shrinks with an ellipsis instead — so deleting a note works reliably no matter how long its name is. diff --git a/fastlane/metadata/android/es-ES/changelogs/125.txt b/fastlane/metadata/android/es-ES/changelogs/125.txt new file mode 100644 index 00000000..4b865158 --- /dev/null +++ b/fastlane/metadata/android/es-ES/changelogs/125.txt @@ -0,0 +1 @@ +Los botones «Restaurar» y «Eliminar» de la papelera ya no se salen de la pantalla con los títulos de notas largos. Ahora permanecen siempre totalmente visibles a la derecha, y el título se recorta con puntos suspensivos. Eliminar una nota funciona de forma fiable sin importar lo largo que sea su nombre. diff --git a/fastlane/metadata/android/fr-FR/changelogs/125.txt b/fastlane/metadata/android/fr-FR/changelogs/125.txt new file mode 100644 index 00000000..a48f5dd4 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/125.txt @@ -0,0 +1 @@ +Les boutons « Restaurer » et « Supprimer » de la corbeille ne sont plus repoussés hors de l'écran par les titres de notes trop longs. Ils restent toujours entièrement visibles à droite, et le titre est tronqué avec des points de suspension. Supprimer une note fonctionne donc de manière fiable, quelle que soit la longueur de son nom. diff --git a/fastlane/metadata/android/ja-JP/changelogs/125.txt b/fastlane/metadata/android/ja-JP/changelogs/125.txt new file mode 100644 index 00000000..e83a67ab --- /dev/null +++ b/fastlane/metadata/android/ja-JP/changelogs/125.txt @@ -0,0 +1 @@ +ゴミ箱の復元・削除ボタンが、長いノートタイトルによって画面外に押し出されることがなくなりました。ボタンは常に画面右側に完全に表示され、タイトルは省略記号で縮小されます。タイトルがどんなに長くても、ノートを確実に削除できます。 diff --git a/fastlane/metadata/android/ko-KR/changelogs/125.txt b/fastlane/metadata/android/ko-KR/changelogs/125.txt new file mode 100644 index 00000000..98577760 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/changelogs/125.txt @@ -0,0 +1 @@ +휴지통의 복원·삭제 버튼이 긴 노트 제목 때문에 화면 밖으로 밀려나지 않습니다. 이제 버튼은 항상 화면 오른쪽에 온전히 보이고, 제목은 넘치면 줄임표로 줄어듭니다. 제목이 아무리 길어도 노트를 정확히 삭제할 수 있습니다. diff --git a/fastlane/metadata/android/zh-CN/changelogs/125.txt b/fastlane/metadata/android/zh-CN/changelogs/125.txt new file mode 100644 index 00000000..673127e1 --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/125.txt @@ -0,0 +1 @@ +回收站中的“恢复”和“删除”按钮不再被过长的笔记标题挤出屏幕。按钮现在始终完整显示在右侧,标题过长时会以省略号截断。无论标题多长,都可以可靠地删除笔记。 From 16f9774fdb0363bec5d78e00feaafa1ba5cdf4d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9A=A9=EC=9D=80?= Date: Thu, 13 Aug 2026 09:43:57 +0900 Subject: [PATCH 3/3] docs(history): record PR #299 for the trash actions fix --- HISTORY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index f168b614..1c67019e 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ - Trigger: an F-Droid user on 2.32.2 reported that in the trash bin the Recover/Delete buttons are "either not present at all or are elongated", with screenshots showing the Recover button reduced to a sliver at the screen edge, and that the effect tracks title length (#298). - Analysis: the trash row gives its title no width bound. The title `Text` measures to the full row width, and the action-buttons row then lands beyond the row's visible area, clipped at the screen edge. Every other list screen (notes, archive, locked, tags, search) constrains its title with `overflow = TextOverflow.Ellipsis`; TrashScreen was the only one without it. - Contract/scope: the title gets `Modifier.weight(1f)` + `TextOverflow.Ellipsis` — it takes only the room the buttons leave and ellipsizes when it runs out, keeping both actions fully visible at the right edge for any title length. No behaviour, permission, or storage-format change. -- Implementation: PR #NNN. `TrashScreenTest` (Robolectric) renders a trash row whose title is longer than the screen and asserts both action texts are displayed, that the title's right edge does not cross the Recover button's left edge, and that Recover sits left of Delete. +- Implementation: PR #299. `TrashScreenTest` (Robolectric) renders a trash row whose title is longer than the screen and asserts both action texts are displayed, that the title's right edge does not cross the Recover button's left edge, and that Recover sits left of Delete. - Verification: `testDebugUnitTest` (68 suites) + `:app:lintRelease` locally. The regression was proven both ways: with the old layout the test fails with Recover not displayed; with the fix it passes. No golden moved — the trash screen had none. - Release: versionCode 124→125, versionName 2.32.2→2.32.3, CHANGELOG both editions, seven store-locale `125.txt` (zh-CN's first changelog), landing ×7 + README ×7. No hardening issue filed — issue-response work, and nothing here was a candidate the standing tracker did not already hold.