Fix TV episode navigation and live resume freshness
This commit is contained in:
parent
54c23e076a
commit
8e40ac0869
34 changed files with 793 additions and 101 deletions
|
|
@ -315,16 +315,29 @@ an untouched fresh entry focuses hero button zero; intervening nav input prevent
|
|||
that automatic transfer. Home, Libraries and Discover use the same `ShellContentFocus`
|
||||
release/repeat guard and Back ladder.
|
||||
|
||||
`HomeReadFacade` is the only Home code importing Jellyfin API clients. Release
|
||||
variants read the selected user's Resume, Next up, newest titles and destination
|
||||
shelves, with app-private last-known-good projections through the shared atomic
|
||||
disk cache. A missing saved library becomes a recovery panel; a saved library
|
||||
stays visible when Jellyfin is unreachable. Playback resolves an actual film or
|
||||
episode and checks Jellyfin before opening upstream's player. No season,
|
||||
recommendation stub or different person's session is promoted to playback.
|
||||
`HomeReadFacade` confines Home SDK reads to the selected user. Resume and Next up
|
||||
publish independently of slow or failed library shelves; saved metadata still
|
||||
paints immediately, but a saved hero offers Details until watch data revalidates.
|
||||
Home and title Play actions resolve the current Jellyfin item and its current
|
||||
checkpoint at the click, preserving millisecond positions. Series actions use
|
||||
live NextUp with resumable episodes enabled; an explicitly opened episode stays
|
||||
that episode, and Restart deliberately starts that displayed episode at zero.
|
||||
Played flags do not discard a positive checkpoint for an intentional rewatch.
|
||||
No season, recommendation stub or different person's session becomes playable.
|
||||
An unresolved person switch guards Home and both owned/upstream library content
|
||||
before mounting any source read with the prior person's Jellyfin session.
|
||||
|
||||
Home and title watch reads refresh on entry and foreground. A successful
|
||||
PlaybackStopped acknowledgement publishes a revision for the captured server/user,
|
||||
so a return read that beat the stop write is refreshed again after that write.
|
||||
The acknowledgement also removes that user's persisted library grid snapshots
|
||||
instead of waiting for their ten-minute TTL; an in-memory revision bypasses any
|
||||
older snapshot that raced invalidation. Stop-report failures remain logged and
|
||||
do not publish a successful acknowledgement. External players refresh after a
|
||||
supported stop result; an external app that returns no position cannot supply a
|
||||
missing checkpoint. Another client's changes after the final read are outside
|
||||
that click's snapshot.
|
||||
|
||||
Debug variants additionally package the locked fixture and local artwork under
|
||||
`wolfskin-design/src/debug/assets/wolfskin-home/`; release variants exclude them.
|
||||
The explicit fixture provider supplies approved household data and Home states
|
||||
|
|
@ -586,6 +599,13 @@ Selections persist through the same playback repository as the upstream player.
|
|||
Marking a whole series asks first; an explicit episode remains the exact play and
|
||||
watched target even while another season is selected. Nested person/title visits
|
||||
retain their entry's focus and selection state.
|
||||
Choosing another episode from an episode page replaces only the top navigation
|
||||
entry, preserving its series/Home parent. Choosing the first episode from a
|
||||
series, related titles, cast and performer credits still push normal drill-ins.
|
||||
Down into season chips initially focuses the selected playable season, including
|
||||
offscreen later seasons; the row scrolls that chip into view and remembers
|
||||
subsequent deliberate browsing. Saved title watch data cannot enable Play/Resume
|
||||
or Restart before source revalidation.
|
||||
Hardware and remote Back share the sheet/picker/request-overlay precedence, then
|
||||
pop a pushed title/person from content **or** nav. Initial loading has no content
|
||||
target: Down stays in nav, while Back can still leave the title. A missing rating
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue