Integrate Requests with the shared image cache
This commit is contained in:
commit
4cd75cfa26
60 changed files with 1648 additions and 29 deletions
|
|
@ -59,9 +59,9 @@ cover the Wolfskin nav.
|
|||
The independent `:wolfskin-design` module owns the shell components, fixed person
|
||||
colours, focus policy, per-person root-view memory, palette and motion. Its
|
||||
`tokens.json` is the copied approved TV-spec source, retaining the locked prototype
|
||||
SHA and provenance. `shell-tokens.json` adds shell/grid measurements and
|
||||
`home-tokens.json` adds Home geometry from that same prototype. Generate the
|
||||
committed Kotlin, CSS and checksum manifest together:
|
||||
SHA and provenance. `shell-tokens.json` adds shell, grid and sheet measurements;
|
||||
`home-tokens.json` adds Home geometry from that same locked prototype. Generate
|
||||
the committed Kotlin, CSS and checksum manifest together:
|
||||
|
||||
```sh
|
||||
python3 wolfskin-design/generate_tokens.py
|
||||
|
|
@ -84,8 +84,8 @@ padding includes it. The 6 px dash / 4 px gap follows the browser's 3:2 stroke-w
|
|||
ratios. Resting borders are white at 22% opacity; focused borders use ink at 40%.
|
||||
|
||||
The small gear under the final person opens Settings with Requests focused.
|
||||
Settings groups hand off to existing upstream pages; the Requests entry explicitly
|
||||
has no request data yet. **Advanced settings → Wolfskin screens** is the persistent
|
||||
Settings groups hand off to existing upstream pages; Requests opens the household
|
||||
Coming-in sheet described below. **Advanced settings → Wolfskin screens** is the persistent
|
||||
rollout switch: turning it off renders upstream Home and library destinations with
|
||||
the upstream Backdrop and top scrim, while retaining Wolfskin's nav, picker and
|
||||
Settings list. Native Up traversal stays in content until the first focusable row,
|
||||
|
|
@ -192,6 +192,68 @@ side by side with the frozen spec captures; Compose Roboto/JPEG rasterisation,
|
|||
the approved button-scale consolidation and removal of prototype sample pills
|
||||
are recorded differences, not a claim of browser pixel equality.
|
||||
|
||||
## Requests under Settings
|
||||
|
||||
The Requests row and Coming-in sheet share one immutable household snapshot.
|
||||
Ready requests do not count as open. Rows sort Failed, Downloading/Almost ready,
|
||||
Checking/Searching, Waiting, Ready. The bounded window shows five rows, or four
|
||||
with readiness expanded. Right expands Request/Download/Library/Playback; Left
|
||||
collapses; Up/Down collapse while moving. Opening a title preserves the request
|
||||
for Back, and closing the sheet restores its opener. Selecting a root or changing
|
||||
person clears the title-return link. Shared's authenticated actor always reads
|
||||
“by Shared”, never “by you”.
|
||||
|
||||
The debug-only provider loads `app/src/debug/assets/wolfskin-requests.json` and
|
||||
its eight local posters, projected from the locked prototype fixture. Six stage
|
||||
rows feed the running debug shell; the Shared and focused-rating records feed
|
||||
native acceptance states. The identical projection is in design-test resources.
|
||||
No “sample” or “example stages” pill is drawn. Release builds package none of
|
||||
these assets and show Requests unavailable until Conductarr sign-in supplies
|
||||
the generated-client data path. There is no Seerr fallback or handwritten HTTP.
|
||||
Foreground refreshes once; an open sheet or unsettled requests refresh every
|
||||
30 seconds while started. The immutable debug projection is loaded once, not
|
||||
decoded again on every poll.
|
||||
Thumbnails reuse `WolfskinImages` with a 96×144-pixel request, RGB565, no crossfade,
|
||||
the shared 64 MB memory/128 MB disk cache and four-read limit. Actor separator
|
||||
dots use the surrounding text colour; the 40% rule applies only to poster captions.
|
||||
|
||||
Uncached focused ratings wait 350 ms; moving away cancels the read. Read ratings
|
||||
show immediately on return; sign-out clears visibility. This follows the frozen
|
||||
page and spec 6.12, resolving the contradictory no-dwell sentence in spec 7.8.
|
||||
Deterministic coroutine-clock tests cover cancellation, reentry, cached return,
|
||||
sign-out and refreshed locale scores; a thin Compose test verifies actual Dutch
|
||||
rendering and sign-out suppression. The approved nine-key Requests path is JSON
|
||||
data replayed through the real shell. The Requests-only harness starts at the
|
||||
Home-to-nav boundary; Home's actual hero and asynchronous entry have separate key replays.
|
||||
|
||||
Sheet dimensions, padding, glyphs, scales, colours and durations are generated
|
||||
tokens. Scoped sheet line boxes retain CSS heights and baselines independently
|
||||
of native leading rounding; shared shell/library typography is unchanged. Platform
|
||||
Roboto remains required: the host browser used DejaVu Sans, so its width,
|
||||
wrapping, ellipsis and text-block positions are not a wrapping-parity target.
|
||||
For example, the 44-pixel “Coming in” ink is 239 pixels wide in the reference
|
||||
and 194 pixels in native captures. No per-title compensation or font bundle is
|
||||
used. Native comparisons must report those structural differences explicitly.
|
||||
Readiness glyphs sit inline on the text baseline with no flex gap, matching the
|
||||
frozen block-span cascade. Items wrap intrinsically: Roboto fits the expanded
|
||||
readiness into two lines where the reference uses three; no grouping is forced.
|
||||
|
||||
The six rating marks retain the exact locked SVG source in
|
||||
`wolfskin-design/request-marks/`; native-size PNGs and their hashes are generated
|
||||
from the JSON dimensions with the locked contain fit (`.rr .rb` outranks `.crow img`).
|
||||
Inside Coming-in rows they retain the prototype's dark `surface3` chips with 12-pixel rounded corners.
|
||||
Loaded poster thumbnails have no placeholder fill beneath their clipped edge.
|
||||
|
||||
```sh
|
||||
uv run --with cairosvg==2.9.1 python wolfskin-design/generate_request_marks.py
|
||||
```
|
||||
|
||||
`RequestsCaptureTest` writes `st-081`…`st-086`, `st-088` and `st-111` at 1920×1080,
|
||||
density 2.0. Title selection currently uses an explicitly labelled
|
||||
`request-title/...` destination until the independent title screen is integrated;
|
||||
this slice does not claim to implement title pages, TV sign-in, release or device
|
||||
deployment.
|
||||
|
||||
## Libraries and See all
|
||||
|
||||
Movies, Shows and Anime use the shell's retained view and a continuous six-column
|
||||
|
|
@ -206,8 +268,8 @@ its unknown item count.
|
|||
Caption separators use 40% of the existing muted colour's alpha. The rail follows
|
||||
the locked prototype CSS: bold 24 px letters, with the focused letter bold 28 px,
|
||||
overriding the spec table's generic caption style for this component.
|
||||
Library header initials use the muted colour over the person's fill; navigation,
|
||||
picker and Settings avatars retain their dark initials.
|
||||
Library and Settings header initials use the muted colour over the person's fill;
|
||||
navigation and picker avatars retain their dark initials.
|
||||
|
||||
The debug-only `wolfskin-library.json` and `library/assets/` contain the locked
|
||||
prototype's titles and local poster art. Release libraries read through
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue