Commit graph

11 commits

Author SHA1 Message Date
KhooLy
876e7bcecb Prefetch nested shelf posters and size-qualify TV image cache keys
Home vertical lists on both platforms now compose the first four cards of
upcoming rows ahead of scroll via LazyListPrefetchStrategy. TV card
requests move to the size-qualified memory cache key helper mobile already
used, so the same URL requested at poster and expanded sizes no longer
collides under one key; the shelf neighbor prewarm and expanded-poster
prefetch write the matching keys.
2026-07-02 01:01:55 +03:00
KhooLy
c9fdda4274 Unify mobile and TV player chrome through shared tokens
Scrim heights and alphas, seekbar track height, and the buffer/track
colors now come from FluxaDimensions.PlayerChrome and FluxaColors, so both
players render the same chrome: 160dp/0.72 top scrim, 230dp/0.86 bottom
scrim, 4dp track (TV was 3dp).
2026-07-02 00:52:14 +03:00
KhooLy
f4f233f59d Stagger TV hero content reveal and consolidate motion durations
Billboard rotations now play one orchestrated moment: logo, metadata,
description, and buttons fade and rise in sequence, driven by a single
Animatable read inside graphicsLayer so the stagger never recomposes the
panel. Ad-hoc tween literals across hero, shelves, cards, and the ambient
tint move to FluxaDimensions.AnimDuration tokens; the hero title fallback
also picks up the display face.
2026-07-02 00:51:01 +03:00
KhooLy
327e869488 Fade TV shelf rows out under the rail gutter
Rows now dissolve at the left edge instead of hard-clipping. The DstIn
fade needs offscreen compositing, so it only engages once the row has
scrolled; rows sitting at their start render with no extra cost.
2026-07-02 00:49:44 +03:00
KhooLy
f2bb2d902e Tint hero scrims with a color sampled from the backdrop
rememberAmbientHeroColor reuses the existing Palette extraction (LRU
cached) to pull the dark muted tone of the current hero artwork, blended
toward the app background and animated between billboard rotations. TV
bleeds the tint under the shelf area behind the LazyColumn; mobile gets a
glow band above the hero fold.
2026-07-02 00:48:17 +03:00
KhooLy
a2e85be74c Release expanded-poster trailer player when playback stops
Each once-focused card kept its ExoPlayer instance alive until the card
left composition, so scrolling a shelf accumulated idle decoders. Release
on stop caps live trailer players at one.
2026-07-02 00:46:36 +03:00
KhooLy
a32c01faba Upgrade TV card focus treatment to scale, accent ring, and glow
Replace the static 3.5dp focus border and duplicate overlay ring with the
tv-material Surface focus system: 1.05 focused scale (disabled when the
profile turns animations off), a 2.5dp accent border, and a soft black
glow. Shelf rows stop passing no-op positioning callbacks so cards without
expanded posters detach their layout listeners.
2026-07-02 00:46:01 +03:00
KhooLy
d31ed1017e Make cards skippable and stop focus-driven card rebuilds
Add a Compose stability configuration declaring Meta and UserProfile
stable (both are immutable data classes in the data module) so card
composables skip recomposition when shelf state changes. In TvMovieCard,
gate onGloballyPositioned behind expanded/focus consumers, keep the
modifier chain constant by drawing the focus border in transparent when
unfocused, stop keying the artwork request on focus state so D-pad moves
no longer rebuild ImageRequests unless a focus GIF exists, and drop
crossfade allocations. Continue-watching card scale now animates in a
graphicsLayer block instead of recomposing.
2026-07-02 00:44:22 +03:00
KhooLy
0e6835be31 Add Archivo variable display face and card type hierarchy
Bundle Archivo (OFL) as the brand display family with width/weight axes;
displays, titles, shelf row titles, and Top Ten numerals now render in
expanded Archivo. Card titles drop from Black/Bold to SemiBold with Medium
metadata so shelves get visible hierarchy.
2026-07-02 00:38:49 +03:00
KhooLy
663c1154f1 Consolidate UI palette into FluxaColors tokens
Replace scattered color literals (Netflix-red E50914/E53935 progress and
accent fallbacks, drifting dark surface tones) with a single FluxaColors
object; AppTheme and ThemeHelper now source from the same tokens. Accent
fallback unifies on the theme ember E85D3F.
2026-07-02 00:34:30 +03:00
KhooLy
9384e1257b Initial commit 2026-06-05 14:43:08 +03:00