Skip to content

feat: [IMAGES] Redesign the Images screen: grid cards, list view and full-screen viewer - #733

Merged
florent37 merged 10 commits into
mainfrom
feat/images-screen-redesign
Oct 30, 2026
Merged

florent37 merged 10 commits into
mainfrom
feat/images-screen-redesign

Conversation

@florent37

@florent37 florent37 commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Description

Redesign of the Images screen (Desktop + docs).

UI

  • Toolbar: the same [list | grid] toggle as the Files screen (moved to the design system as FloconSegmentedIconToggle, used by both screens), grid by default.
  • Grid card: image on a black background, format badge (JPG, PNG, WEBP…) at the top left, and a key/value block under the image:
    • URL: host + path on one line, ellipsized at the end
    • Size: decoded dimensions (600×400)
    • Weight: downloaded size (142 KB, 1.2 MB), hidden when unknown
    • Time: 14:53:18 + faint .868
  • List: one compact row per image: time, thumbnail, URL, dimensions, format, weight.
  • Images stay in load order, no grouping.
  • Clicking an image opens a full-screen viewer (replaces the old dialog):
    • top bar: format badge, URL, size / weight / time, zoom controls (− / level / +), copy URL, open in browser, download (original bytes from the Coil disk cache, PNG fallback), close
    • image on black, previous / next buttons, ← / → keys, Esc to close
    • bottom filmstrip in load order, current image outlined and kept in view
    • zoom: trackpad pinch (macOS), ⌘/Ctrl + wheel, double click, + / - / 0 keys; scroll or drag to pan when zoomed
    • the top bar sits below the macOS window buttons

Data

  • DeviceImageDomainModel / DeviceImageEntity gain nullable byteSize and contentType, filled from the network response when the image is captured. Room version 88 → 89 (schema 89.json added, destructive migration as before).
  • Format comes from the content type, falling back on the URL extension.

Pinch to zoom (macOS)

  • Compose desktop doesn't deliver trackpad magnify events, so the viewer listens to com.apple.eawt.event MagnificationListener through reflection (no-op on other OSes or if unavailable).
  • compose.desktop.application.jvmArgs gets --add-exports=java.desktop/com.apple.eawt.event=ALL-UNNAMED; proguard gets -dontwarn com.apple.eawt.** (release build not run locally).

Tests

  • ImageUiMapperTest covers format detection, weight formatting, URL and time splitting; ImageViewerUiMapperTest the viewer position / previous / next; ImageZoomTest the zoom and pan math.

MCP tools are unchanged.

/gemini review

@rteyssandier

Copy link
Copy Markdown
Contributor

should update docs2 and docs

@florent37 florent37 changed the title feat: [IMAGES] Grid cards with format, size, weight and a list view feat: [IMAGES] Redesign the Images screen: grid cards, list view and full-screen viewer Oct 30, 2026
Comment thread docs/image.md Resolved
@florent37
florent37 marked this pull request as ready for review October 30, 2026 15:24
@florent37
florent37 merged commit b54c88b into main Oct 30, 2026
1 of 2 checks passed
@florent37
florent37 deleted the feat/images-screen-redesign branch October 30, 2026 15:25
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.

2 participants