Skip to content

fix(trash): keep Recover/Delete visible with long titles (#298) - #299

Merged
jeiel85 merged 3 commits into
mainfrom
fix/issue298-trash-buttons
Aug 13, 2026
Merged

fix(trash): keep Recover/Delete visible with long titles (#298)#299
jeiel85 merged 3 commits into
mainfrom
fix/issue298-trash-buttons

Conversation

@jeiel85

@jeiel85 jeiel85 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Fixes #298.

Problem

In the trash bin, a note's title had no width bound inside its row. With a long title the title measured to the full row width and pushed the Recover/Delete buttons past the right edge of the screen — reported as buttons that "are either not present at all or are elongated", easy to tap wrong when only a sliver showed.

Fix

Give the title Modifier.weight(1f) + TextOverflow.Ellipsis so it takes only the room the buttons leave and ellipsizes when it runs out — the same treatment every other list screen (notes, archive, locked, tags, search) already uses.

Test

New TrashScreenTest (Robolectric, no golden): renders a trash row with a title longer than the screen and asserts both action buttons are displayed, the title's right edge does not overlap Recover, and Recover sits left of Delete. Verified both ways — fails on the old layout (Recover not displayed), passes with the fix.

Release prep

v2.32.3 (versionCode 125): CHANGELOG both editions, seven store-locale changelogs, landing x7 + README x7 version markers. verify-release-notes.ps1 and verify-landing-versions.ps1 pass locally; testDebugUnitTest (68 suites) and :app:lintRelease are green.

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.
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
@jeiel85
jeiel85 merged commit 43c14b0 into main Aug 13, 2026
10 of 11 checks passed
@jeiel85
jeiel85 deleted the fix/issue298-trash-buttons branch August 13, 2026 02:57
@jeiel85

jeiel85 commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

Fixed in v2.32.3 — the trash row now constrains the title with \Modifier.weight(1f)\ + \TextOverflow.Ellipsis\ so the Recover and Delete buttons stay fully visible at the right edge for any title length. A Robolectric regression test (\TrashScreenTest) was added and fails on the old layout, passes on the fix.

Release: v2.32.3 · GitHub APK · F-Droid will pick up the tag shortly.

Thanks again for the detailed report with screenshots!

jeiel85 added a commit that referenced this pull request Aug 13, 2026
Addresses two hardening candidates from the #298 review (PR #299):

- items(trashedNotes) now passes key = { it.id }, matching every other
  list screen (archive, locked, search, notes). Without a key LazyColumn
  tracks rows by position, so restoring or deleting a note could leave
  the wrong row briefly visible or animate incorrectly.
- The inline Restore/Delete actions switch from Button to TextButton,
  the standard Material 3 pattern for list-row actions. TextButton's
  smaller horizontal padding (~24dp less per button) leaves the title
  more room on narrow screens with long localized labels (e.g. German
  'Wiederherstellen'), while both actions stay visible and tappable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Delete" button in the "trash bin" section not always visible

1 participant