Commit Graph
20 Commits
Author SHA1 Message Date
MichaelandClaude Opus 5 095eb2c1b0 fix(fonts): drop invalid bundled fonts that Skia refused to parse
The font files I vendored under assets/google_fonts were not fonts. A
valid TTF starts with 00 01 00 00; these started with 80 18 01 00 and
3C A3 00 00. They came from the legacy fonts.googleapis.com endpoint,
and I shipped them without checking the signature.

Skia rejected every one of them, which is what produced the console
errors seen in production:

    Failed to parse font family "Karla_regular"
    Failed to parse font family "Fraunces_600"

so the whole app rendered in a fallback font instead of Fraunces/Karla.

Removing them restores the working path: google_fonts fetches from
fonts.gstatic.com at runtime, which is what main did before.

This gives up the startup win claimed in 1feeaae. Bundling properly is
still possible but needs static per-weight instances: the only files
google/fonts publishes for these two families are variable fonts, and
google_fonts cannot map a weight onto them in asset mode. A note in
pubspec.yaml records this so the mistake is not repeated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 08:41:59 +02:00
MichaelandClaude Opus 5 1feeaae78a feat(design): Warm Cinema theme + event-driven adaptive players
Replaces the Projector Noir palette with "Warm Cinema" and rebuilds the
web players around a shared, event-driven engine.

Design
- app_colors: warm charcoal (#0B0908), cream (#F3E9DF), ember (#D9541F);
  adds posterScrim/heroScrim gradients, lift()/emberFocus() shadows,
  const cream-alpha tokens replacing Colors.whiteNN, and primaryFill,
  a deeper ember reserved for text-bearing fills so white labels clear
  the 4.5:1 AA threshold that #D9541F alone does not
- app_theme / mobile_theme: Fraunces (display serif) + Karla (body),
  tighter radii, 20+ component themes
- glass_container: opaque layered surfaces replace the blurred glass
- themed_loading_screen restyled; players and boot splash follow

Performance
- drop every BackdropFilter: backdrop blur forced a full framebuffer
  read per frame per card, the main source of scroll jank
- bundle Fraunces/Karla as assets so google_fonts stops fetching from
  fonts.gstatic.com at startup
- bound image decode size on 12 sites: a 40-poster grid drops from
  ~240 MB to a few tens of MB of GPU memory

Players (new shared engine: web/xf-player-core.js)
- start on media events instead of polling the buffer every 100-200 ms
- hls.js/mpegts.js loaded on demand, so ~213 KB of mpegts is never
  fetched for HLS streams
- liveSyncDurationCount 10 -> 2, startFragPrefetch on, testBandwidth
  off, MPEG-TS initial stash 512 KB -> 64 KB
- adaptive escalation fast -> balanced -> safe after repeated stalls in
  a 60 s window, applied live for HLS so there is no visible cut

Preserved from the recent streaming work on main: server-side quality
selection, stable player viewId, the turbo direct MPEG-TS path, vendored
library cache headers and the CI/Docker changes. Only the theme layer and
the player front-end were replaced; GlassCard stays in ui_components.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 21:42:56 +02:00
GitHub Copilot 28d6a53dce fix(dependencies): clean up unused dependencies and update lottie and subtitle versions in pubspec.yaml 2026-03-26 10:45:00 +01:00
GitHub Copilot 0cd06272bf fix(dependencies): remove unused dio_cache_interceptor_hive_store and dio_downloader from pubspec.yaml 2026-03-26 10:43:10 +01:00
GitHub Copilot db849599b7 fix(dependencies): remove unused http_client_adapter from pubspec.yaml 2026-03-26 10:38:39 +01:00
GitHub Copilot 91eb1ce5a0 Add download and subtitle services, enhance UI with continue watching and quality selector widgets
- Implemented DownloadService for managing download tasks, including start, pause, resume, and cancel functionalities.
- Created SubtitleService for handling subtitle tracks, parsing SRT and WebVTT formats, and downloading subtitles.
- Added ContinueWatchingWidget to display user's watch history with progress indicators.
- Developed QualitySelectorWidget for selecting video quality during playback, including auto quality adjustment.
- Introduced TrendingWidget and RecentlyAddedWidget to showcase trending and recently added content.
2026-03-26 10:34:18 +01:00
Michael 1259380ca7 feat: remove video_player_win dependency 2025-12-16 07:46:14 +01:00
Michael 83886e39ae feat: add initial Windows desktop platform support files and configuration. 2025-12-16 07:41:08 +01:00
Michael f34e5f1ad9 docs: add Docker build failure investigation task and pause audio investigation. 2025-12-08 17:19:10 +01:00
Michael efa5e5dc28 refactor: remove media_kit and media_kit_video dependencies 2025-12-08 13:09:41 +01:00
Michael 2e2bd2b0ad feat: add IPTV player screen supporting live, VOD, and series streams via HTML iframe, and update dependencies. 2025-12-07 10:15:08 +01:00
Michael 8211ddb547 chore: update project dependencies to their latest versions. 2025-12-07 00:04:52 +01:00
Michael b76dc6995b feat: implement core server with API (auth, playlists), static assets, Xtream proxy, media streaming, and icons 2025-12-06 13:10:58 +01:00
Michael 1499a1ea8f deps: update video_player_web_hls to ^1.3.0 2025-12-06 10:33:15 +01:00
Michael 300609d30c feat: Implement initial web application structure and HLS video playback support. 2025-12-06 10:24:26 +01:00
Michael a1ce183cd3 feat: implement Hive service for local data persistence, user management, and playlist configuration. 2025-12-06 01:11:43 +01:00
Michael 5943cd9587 chore: Stop explicitly copying pubspec.lock as flutter pub get generates it. 2025-12-05 18:44:45 +01:00
Michael 163b1632bf feat: Add video_player_web dependency for web platform and enable verbose logging for web builds. 2025-12-05 11:14:41 +01:00
Michael 0ca2835cba chore: Update dependencies, switch Flutter web renderer to HTML, replace media_kit with video_player/chewie, and remove Hive volume from Docker setup. 2025-12-05 09:52:40 +01:00
Michael 2a28eb44d8 feat: Initialize XtremFlow project with core structure, IPTV features, authentication, and video player. 2025-12-05 09:17:11 +01:00