iptv improvements - #636
Merged
Merged
Conversation
Upstream refactored the same Live TV code, so three IPTV fixes were re-applied in their new locations: - LiveTvStartup.chooseStartupChannelId now honours an explicitly requested channel that is outside the paged window, instead of falling back to the first available channel. - loadPagedChannelWindow takes the ordered favourites list and sorts by it; a Set was discarding the user's favourite ordering. - Kept upstream's rewritten category-menu key handling, re-applying RTL mirroring on the dismiss key. Also took upstream's retuned guide window constants and category drawer; dropped EpgGrid's onOpenVariants, since quality variants moved into the channel long-press menu.
Re-applies the fix to chooseStartupChannelId after upstream moved it into LiveTvStartup. An explicitly requested channel (Home's Favorite TV row, launcher deep links) was dropped when it was not in the currently paged window, falling through to firstAvailableChannelId and tuning an unrelated channel.
silentbil
force-pushed
the
iptv_improvements
branch
from
September 4, 2026 10:45
6884697 to
804ba62
Compare
The screen-level OK gesture resolved the focused channel through visibleEnrichedState.index.byId, which only covers the currently paged window. Any favourite outside it resolved to null, so holding OK did nothing on those rows while a mouse long-press still worked — the pointer path gets the channel object straight from the rendered row. Record the focused row's channel object as the row reports it and use that for the gesture, falling back to the index lookup.
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.
Live TV: RTL navigation, Favorite TV on Home, and a channel menu
Fixes
horizontal key handler stayed hardcoded LTR, so navigation ran opposite to the visuals
(top nav bar included). Added a shared
Key.mirrorHorizontalForRtl()and applied it ateach key-reading site. Layout itself unchanged.
"user has no favourites" and deleted a visible row. A tri-state outcome now separates
authoritatively empty from cache not ready.
window instead of the full store; now looked up by id via
pagedChannelsByIds.requested channel outside the paged window was discarded in favour of channel Thank you so much for sharing bro. There's some minor issues #1. Home
now passes only the channel id; out-of-window channels are hydrated and honoured.
Set, both in the SQLite lookup and as a Compose effect key.then thrashed the menu. A held key turns into a stream of synthetic discrete presses, so
the OK gesture is now owned in one place and guarded by elapsed time rather than
repeatCount.Features
of Home (default on).
(Add when not one), plus Quality variants where applicable. Backed by new favourite
reordering APIs in
IptvRepository/TvViewModel.Verification
Build green, 524 unit tests pass, behaviour verified on an Android TV emulator.