18 Commits
Author SHA1 Message Date
Claude 9b6b7faf4a feat: Apple glass gray theme, lower live latency, audio fix, remote focus memory
Theme — replace the near-black "Warm Cinema" palette with a neutral
"Apple Glass Gray" system: graphite surfaces (#26262C base, lighter
containers), Apple-white text, Apple system blue accent, white glass
borders/highlights. Noticeably less dark overall; light theme moves
from kraft paper to iOS light gray. All AppColors names kept so no
call site changes.

Player latency — live buffering drops from 8s cache / 10s readahead /
150MB to 3s / 5s / 60MB, keeping enough headroom for network jitter
while staying much closer to the live edge.

Audio — the forced audio filter chain
(af=lavrresample,format=channels=stereo:sample_fmts=s16) mixed FFmpeg
and mpv syntax; when it failed to init for a channel's codec, mpv
muted the stream entirely. Replaced by mpv's native
audio-channels=stereo downmix and AO-negotiated output format. Probe
caps raised (2MB/3s) so late-declared audio tracks (AAC-LATM) are
detected without slowing healthy streams.

Remote control — the player OSD now remembers the last focused button
and restores focus to it whenever the OSD reopens (arrows, OK) and
across channel switches, so one press re-zaps instead of five. On
live TV, OK with hidden controls only reopens the OSD instead of
pausing the stream.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0156exq7fejVrD3HKU3MmS8X
2026-08-28 07:41:18 +00:00
MichaelandClaude Opus 5 694b1257b9 fix(theme): remove every hardcoded Apple/Material colour left in the UI
Porting the palette was not enough: the Warm Cinema charter only reached the
widgets that read from AppColors. Nineteen screen and widget files still painted
Apple TV values inline, so the app kept showing blue — most visibly on the
selected navigation pill.

Swept out:
- 0xFF0A84FF (Apple blue) on the selected nav pill, category card icons and the
  "add playlist" button
- 0xFF4FC3F7 and 0xFF1565C0 in the player overlays
- Colors.blueAccent / Colors.blue in dialogs
- Apple greys 1C1C1E / 2C2C2E / 3A3A3C / 8E8E93 -> warm charcoals
- 128 Colors.white* -> the onSurfaceNN cream ladder (a pure white on a warm
  ground reads blue, which is the charter's whole point)
- Colors.red / green / amber / yellow / grey* -> error, success, ratingGold,
  outlineVariant
- pure black ink on light fills -> onPrimaryFixed, a warm near-black
- the white focus glow -> an ember glow

Deliberately left true black: the video surface backgrounds and the scrims over
posters and video, where a warm tint would clash with the picture.

Adds the onPrimaryFixed / primaryFixed / onSurface70 tokens the sweep needed.

Verified: no Material or Apple colour literal remains outside lib/core/theme;
flutter analyze reports no errors; 19/19 tests pass; release APK builds.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:39:58 +02:00
Michael f07a6e91f9 feat: add MobilePosterCard widget and MobileLiveTVTab for IPTV live TV functionality. 2026-03-27 15:24:10 +01:00
Michael a1b1363bc8 feat: add mobile Xtream service, data providers, and UI widgets for Live TV and Movies. 2026-03-27 15:15:44 +01:00
Michael e1a0802a0c feat: Add mobile-specific Riverpod providers for Xtream service, live TV, movies, series, and EPG data, along with UI state management. 2026-03-27 13:34:06 +01:00
Michael ef97c6dc90 feat: Add generated Hive TypeAdapters for AppUser and PlaylistConfig models, and new build/doctor log files. 2026-03-27 11:08:04 +01:00
GitHub CopilotandClaude Haiku 4.5 f9ab247ff5 perf(high): P1-2 - Optimize image cache sizes
Limit image cache to display size instead of full resolution:
- Channel icons: 40x40 display → 50x50 cache (vs 1000px full-res)
- Poster thumbnails: 100x150 display → 120x180 cache
- Hero carousel: 500x300 display → 600x360 cache
- Series cover: 400x600 display → 480x720 cache

Implementation:
- Create ImageCacheConfig utility with presets
- Set memCacheWidth/Height for all CachedNetworkImage
- Configure DefaultCacheManager (200MB limit, 7-day TTL)
- Add standardized cache configuration across app

Expected impact:
- -60% image cache disk usage
- -40% memory footprint from cached images
- Faster image loading (smaller files to decode)
- Better performance on low-storage devices

Files modified:
- lib/core/utils/image_cache_config.dart (new)
- lib/mobile/widgets/mobile_poster_card.dart
- lib/core/widgets/components/hero_carousel.dart
- lib/features/iptv/widgets/mobile_live_tv_tab.dart
- lib/features/iptv/screens/mobile_series_detail_screen.dart

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-25 22:36:14 +01:00
Michael b249074db1 feat: Add initial mobile dashboard screen with Xtream data and UI state providers. 2025-12-20 16:05:01 +01:00
Michael 7e836f8ad3 feat: add mobile settings tab with player and content filter options, a new mobile scaffold, and logo asset. 2025-12-20 10:23:16 +01:00
Michael 4e00cc7dc7 feat: add build log file 2025-12-18 00:06:00 +01:00
Michael 55acbbc135 feat: Implement a web-based IPTV player with HLS/MPEG-TS support and Flutter communication. 2025-12-17 23:45:56 +01:00
Michael 522814b8ff feat: Introduce TVFocusable widget for advanced TV navigation and focus management, alongside new MobileSettingsTab and MobileScaffold components. 2025-12-11 23:33:58 +01:00
Michael c791631b09 feat: introduce Apple TV-style color palette and mobile IPTV settings tab 2025-12-11 23:23:42 +01:00
Michael 426e763742 feat: add MobileMoviesTab for paginated movie display, search, and playback, introducing TvFocusable for enhanced navigation. 2025-12-11 23:16:18 +01:00
Michael 57ced00738 feat: Implement MobileLiveTVTab for displaying live IPTV channels with search, categories, and favorites. 2025-12-11 23:02:14 +01:00
Michael 9cc0f5eacb feat: add AppColors class defining an Apple TV-inspired color palette and theme schemes. 2025-12-10 23:35:05 +01:00
Michael 2406b9b100 feat: introduce XtreamServiceMobile for IPTV API interactions and DnsFallbackInterceptor for network robustness. 2025-12-10 22:16:51 +01:00
Michael 26ac5fb0b8 feat: Implement initial mobile application structure including IPTV features, authentication, routing, and theming. 2025-12-06 23:25:42 +01:00