When a message has multiple attachments, the reader's Attachments composable (app/src/main/kotlin/org/libremail/ui/reader/ReaderScreen.kt, ~line 203) renders every attachment via attachments.forEach { AttachmentRow(...) }, so they stack vertically and push the rest of the message content downward without bound.
Desired behavior
1 attachment: render it as today (single AttachmentRow, no accordion).
More than 1 attachment: show the FIRST attachment row, then a collapsed accordion/drawer control below it — a down-arrow (chevron) with the text "See x more attachments", where x = (total attachments − 1). Tapping it expands to reveal the remaining rows; tapping again collapses. On expand, rotate the chevron (down→up) and/or update the label (e.g. "See fewer attachments" / "Hide").
Pluralization: x == 1 → "See 1 more attachment" (singular); x > 1 → "See {x} more attachments". Put the strings in strings.xml with a plural (plurals) resource.
Scope / notes
The message VIEW (reader) only: ui/reader/ReaderScreen.ktAttachments / AttachmentRow. Compose-screen attachments are a separate surface and NOT in scope here.
Material 3; animate the expand/collapse to match the codebase; keep it accessible (chevron contentDescription; the toggle exposes its expanded state to semantics).
Each AttachmentRow's download/open behavior is unchanged.
When a message has multiple attachments, the reader's `Attachments` composable (`app/src/main/kotlin/org/libremail/ui/reader/ReaderScreen.kt`, ~line 203) renders every attachment via `attachments.forEach { AttachmentRow(...) }`, so they stack vertically and push the rest of the message content downward without bound.
## Desired behavior
- **1 attachment:** render it as today (single `AttachmentRow`, no accordion).
- **More than 1 attachment:** show the FIRST attachment row, then a collapsed accordion/drawer control below it — a down-arrow (chevron) with the text **"See x more attachments"**, where **x = (total attachments − 1)**. Tapping it expands to reveal the remaining rows; tapping again collapses. On expand, rotate the chevron (down→up) and/or update the label (e.g. "See fewer attachments" / "Hide").
- **Pluralization:** x == 1 → "See 1 more attachment" (singular); x > 1 → "See {x} more attachments". Put the strings in `strings.xml` with a plural (`plurals`) resource.
## Scope / notes
- The message VIEW (reader) only: `ui/reader/ReaderScreen.kt` `Attachments` / `AttachmentRow`. Compose-screen attachments are a separate surface and NOT in scope here.
- Material 3; animate the expand/collapse to match the codebase; keep it accessible (chevron `contentDescription`; the toggle exposes its expanded state to semantics).
- Each `AttachmentRow`'s download/open behavior is unchanged.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
When a message has multiple attachments, the reader's
Attachmentscomposable (app/src/main/kotlin/org/libremail/ui/reader/ReaderScreen.kt, ~line 203) renders every attachment viaattachments.forEach { AttachmentRow(...) }, so they stack vertically and push the rest of the message content downward without bound.Desired behavior
AttachmentRow, no accordion).strings.xmlwith a plural (plurals) resource.Scope / notes
ui/reader/ReaderScreen.ktAttachments/AttachmentRow. Compose-screen attachments are a separate surface and NOT in scope here.contentDescription; the toggle exposes its expanded state to semantics).AttachmentRow's download/open behavior is unchanged.