docs: PLAN.md status and the screenshot list after the second Android pass

This commit is contained in:
nvrl committed 2026-10-03 13:34:28 +02:00
1 parent 630f07a462
commit 39a7f3cc38
2 files changed
+25 -16

No files matched your search

+14 -9
View File
@@ -10,16 +10,21 @@ gained about twenty features on 2026-10-02 that Android does not have.
## Status (2026-10-03)
Done: section 0, every parity item, the Library, Title, Shares and Settings
redesigns, Inter, and screenshot tests. Not yet verified on a device; the
host gate (ktlint, lint, unit and screenshot tests) and CI's build job pass.
Done: section 0, every parity item, and every recommendation in section 2 —
the Library, Title, Shares, Settings and Downloads redesigns, per-page app
bars drawn edge to edge, search behind an icon, skeleton loading and
generated placeholder art, Settings sub-pages and a language picker, a
long-press Change match, Inter, light and tablet screenshots, the library
and a title side by side from 840 dp, a poster-to-backdrop shared element
transition, and predictive back on the title page.
Open, from section 2: per-screen app bars and edge-to-edge under the status
bar, skeleton loading and generated placeholder art, a search icon that
expands, a language picker, Settings sub-pages, the Downloads page, light
theme and tablet screenshots, `ListDetailPaneScaffold` on tablets, shared
element transitions and predictive back, and a long-press Change match (the
title page has it).
Two departures from the text below. The tablet layout is a two-pane `Row`
rather than `ListDetailPaneScaffold`, which would have added the
`adaptive-layout` artifact for one split. Pull to refresh shows the
indicator while a crawl runs, but not the crawl's progress.
Not yet verified on a device; the host gate (ktlint, unit and screenshot
tests) passes, and Android lint runs in CI.
## 0. CI (done)
+11 -7
View File
@@ -212,13 +212,17 @@ client's decisions, so a change to `pstr_app::theme::Role` that nobody carried
across fails here rather than being noticed in a screenshot.
**Screenshot tests** (`ScreenshotTest`, Roborazzi) draw each screen from fixed
records — Library on a phone, a tablet and at font scale 1.5, an empty library,
a title, History, Shares, Settings and Downloads — and `check` compares them with the
images in `app/src/test/screenshots`. A layout regression compiles and passes
everything else; here it fails, and the review shows the changed image. After a
deliberate change, `gradlew recordRoborazziDebug` rewrites the images and they
are committed with it. No artwork loads on the host, so tiles show their
placeholder, and the palette is the shipped default.
records — Library on a phone, a tablet, at font scale 1.5, while loading and
empty; a title on a phone and a tablet; History on a phone and a tablet; Shares;
the Settings index and its Playback and Storage pages; Downloads with a season
saved and empty; and the library and a title again in Catppuccin Latte — and
`check` compares them with the images in `app/src/test/screenshots`. A layout
regression compiles and passes everything else; here it fails, and the review
shows the changed image. After a deliberate change, `gradlew
recordRoborazziDebug` rewrites the images and they are committed with it.
Artwork loading is switched off (`LocalArtworkLoading`), so every tile shows
its generated placeholder whatever the timing, and the palette is the shipped
default except in the Latte captures.
**Instrumentation tests** (`app/src/androidTest`) are the things with no host
equivalent: