Commit Graph

3 Commits

Author SHA1 Message Date
b1001e3bb7 feat: dynamic video extractor, subtitle encoding fix, adaptive bitrate, seek mode
- Rewrite VideoExtractor for dynamic redirect following (no hardcoded domains)
- Parse player CONFIG JSON and call stream API directly (vaplayer.ru)
- Fallback to HTML scraping for old-style pages (cloudnestra)
- Fix subtitle encoding: detect ISO-8859-1, save as UTF-8 for proper ñ/accents
- Show up to 10 Spanish subtitle sources from OpenSubtitles
- Subtitle picker auto-scrolls to selected option
- State-based D-pad navigation for all controls and subtitle picker
- Seek mode: DPAD_UP enters, LEFT/RIGHT seeks, CENTER/DOWN applies
- Adaptive bitrate: ExoPlayer auto-selects quality based on bandwidth
- Reduce buffer sizes for Chromecast (15s/30s instead of 100s)
- Fix availableSubtitles stale capture in DisposableEffect key
2026-04-27 17:42:53 -03:00
38c5342e88 feat: state-based D-pad navigation, seek mode, subtitle picker, 20-agent audit fixes
- Replace broken Compose focus system with state-based selectedButton approach
- Add seek mode (DPAD_UP to enter, LEFT/RIGHT to seek, CENTER/DOWN to apply)
- Make SubtitlePickerOverlay state-based (DPAD UP/DOWN navigate, CENTER select)
- Fix 25 P0 crashes from 20-agent audit (SSRF, CancellationException, DTO defaults)
- Fix UX issues: animations, padding, TvErrorDisplay, navigation, finishAffinity
- Fix pause button: remove clickable, onKeyEvent only, repeatCount guard
- Add subtitle extraction: OpenSubtitles EN/ES, HI filtering, dedup
- Fix override accumulation: clearOverridesOfType before setting new tracks
- Disable tunneling for subtitle compatibility
- Performance: AutoHideHolder, @Immutable models, contentType
- Fix SearchScreen focus visibility: animated scale, white border, dimming
- Fix PlayerButton invisible text: white on HorrorGray bg
- Fix isLoading stuck in Home/Detail/SearchViewModel
- Fix VideoExtractor CancellationException rethrow, IMDB_ID_PATTERN 7+ digits
2026-04-27 16:05:53 -03:00
828086ceb3 Initial commit: HorrorTV Android TV App for Chromecast 4K
Features:
- Horror-themed categories (Scream, Halloween, Conjuring, etc.)
- ExoPlayer native video playback from streamimdb.me
- D-pad navigation with visible focus indicators (8dp border + shadow)
- Custom app icon (Scream mask)
- VideoExtractor for HTML parsing and URL resolution
- FocusRequester crash fixes
- HLS streaming support

Built with:
- Kotlin + Jetpack Compose
- ExoPlayer 1.4.0
- Hilt DI
- Coil image loading
- OMDb API integration

Tested on Chromecast 4K with working video playback.
2026-04-26 21:58:59 -03:00