Normalize FAAB events into stable sport buckets on master-api, group the TV Events tab by sport (with client fallback), and bump Android TV to 128/0.14.65.
Add imageBackdrop and retune scoring so card rails use BOXART-16X9, detail/hero prefer HERO-16X9, and channels-logo PNGs no longer win as cover or logo. TV 0.14.61.
Subprofiles can edit their own profile and cannot switch server/account; series detail shows watched/progress; skip-to-next marks the prior episode done and keeps one continue-watching tile per series.
Probe-driven continue-watching advances to the next episode; Android TV gets next controls, red focus rings, and a Watchlist tab between Home and Films.
Pass embedded track language/title through play ACK into clients so Android/iOS can label tracks instead of generic Ondertitel N when ExoPlayer/VLC miss tags.
Owners can list/revoke devices and approve TV codes in the iOS app; TV shows a vmc:// QR, and Films/Series get visible chips, titles, and a non-overlapping A–Z index.
Co-authored-by: Cursor <cursoragent@cursor.com>
Browse films/series alphabetically with sort chips and letter scrubber; trap dialog focus and fix long-press remove from continue watching (0.14.13).
Co-authored-by: Cursor <cursoragent@cursor.com>
Separate applicationId for Play listings; touch bottom-nav and soft-keyboard search while sharing the same cluster API.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load channel lists without EPG first, cache categories, and prefetch neighbors so left/right navigation feels snappy while EPG fills in on the background.
Prefetch now-playing titles for every channel when a category opens so program info is visible immediately, not only on row focus.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add epg=1 to the channels API so the app loads program titles in one request per category instead of one call per channel.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop bulk EPG prefetch from blocking the overlay; load program titles lazily on focus and keep the channel list visible while categories refresh.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prefetch now-playing titles for menu rows and use left/right to switch IPTV categories while the in-play overlay stays open.
Co-authored-by: Cursor <cursoragent@cursor.com>
Press up during playback to open a glass-style side panel with the current category channels; switch zenders without closing the menu until back is pressed.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace large channel tiles with dense rows, horizontal category tabs, and a right-side EPG detail panel while keeping focus restoration behavior.
Co-authored-by: Cursor <cursoragent@cursor.com>
Focus lands on categories or last watched channel when opening TV or returning from playback, and refresh the category sidebar, channel grid, and EPG bar styling.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match Smarters by serving /live/user/pass/id.ts first from master-api, and tune the Android live player buffer for steadier TS playback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose client IPTV endpoints and admin toggle so viewers with IPTV access get a setup-box-style channel guide and live player in the TV app.
Co-authored-by: Cursor <cursoragent@cursor.com>
Admin can set a separate homepage label per library shelf; the client home API uses it for row titles while browse keeps the canonical name. Also fixes LazyRow focus clipping on the TV home screen (0.8.4).
Co-authored-by: Cursor <cursoragent@cursor.com>