fix(tvos): surf channels the way the list reads - #192
Open
0xashwin wants to merge 1 commit into
Open
Conversation
Up on the Siri Remote jumped to the channel *below* the current one in the list, and down to the one above. Each of the four engine hosts turned the direction into a list offset itself, and all four spelled it backwards. Resolve the direction in LiveChannelNavigator instead, next to the ordering it indexes into, so the hosts pass a direction and never an index — and the mapping is finally reachable from the test target.
0xashwin
force-pushed
the
fix/tvos-channel-surf-direction
branch
from
August 29, 2026 16:40
c48b38b to
013c3ef
Compare
Owner
|
This is actually intended. Would only do this with a setting. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pressing up on the Siri Remote while watching live TV tunes to the channel below the current one, and down tunes to the one above. Every other up/down handler in the app moves the way you'd expect —
TVReorderableContentList, the EPG grid — so the player is the odd one out, and it's one left-press away from a channel browser that renders the very same list top-to-bottom.The original intent was a TV remote's channel rocker, where "up" means a higher channel number. That doesn't survive contact with Lume: the surf list is whatever you launched from — Favorites, Recents, a category — in whatever sort is active. There's no higher channel to go up to. There's just a list on screen.
Why all four engines had it: each host turned the direction into a list offset itself (
offset: direction == .up ? 1 : -1), four identical copies, all backwards. So the fix isn't the sign — it's that the hosts were doing arithmetic they had no business doing. Direction now resolves insideLiveChannelNavigator, next to the ordering it indexes into, and the hosts pass.up/.down.That also makes it testable:
MoveCommandDirectiondoesn't exist on iOS and the test target only runs on iOS sims, which is exactly why 20 existing navigator tests coveredoffset: 1and none covered what "up" meant.Tests: three new cases pinning up → the row above, down → the row below, and up-then-down returning where it started. Confirmed failing before the fix.