Keep season episode reels chronological when next-up is near the end #78
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fm/tv-bug-season-reel"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Outcome
Keep the season episode reel chronological and open the episode under the user's focus, independently of the Play/Resume target.
Cause
TitleReadFacade.readstores the series, explicitly opened episode and rich playback target before the season list, deduplicated by ID.buildreused that storage order for the reel. With 24 season-five episodes and next-up at E24, the first tile opened E24 instead of E1. Changing the opened/next-up target also reordered cards under a remembered index: an E13 selection became E12 on refresh. This is data reordering, not a native focus-index jump; the episode count is not a special-case trigger.Change and universal audit
Sort the selected season by its SDK episode number in the shared live/saved projection, retaining rich metadata and exact play/watch identities. This covers series title pages, explicit episode pages and existing saved snapshots without a cache migration.
Checked the other reels: cast maps the item's people list; related titles map the provider's list; performer credits exclude their person header and preserve provider order; the upstream season pager already requests INDEX_NUMBER ordering. None prepends a playback target, so none needs an analogous change. No focus/scroll/navigation code or lane-D cache/motion code changes.
Verification
Native Compose/Robolectric
TitleSeasonReelTest, SDK 34 and 36: 4 failures before, 4 passes after. Fixture: 24 Desperate Housewives-shaped season-five episodes, E1–E23 watched and next-up E24. Real remote input exercises first-tile activation, Left/Right, row return, Android focus, visible selected tiles, disk reload, explicit-episode play/watch identity, and E13 stability across refresh.Only the targeted class ran; no full suite, APK build, TV or emulator. Before/after XML and cause/audit notes are preserved under
/root/.treehouse/firstmate-7bab20/2/firstmate/data/tv-bug-season-reel/. One after-fix attempt exhausted its deadline after lock wait/compilation before tests; the targeted retry passed.Risk
Small ordering-only change at the data boundary. Play/Resume and watched targets remain unchanged. The separately reported lane-D cached first-frame paint discrepancy is not claimed fixed by this change.
AI assistance was used for investigation, implementation, tests and this description.
Landed through the round 2 candidate #82 (merged into fm/tv-round2 as
c21d17df). Closing as superseded; nothing from this branch is lost.Pull request closed