- Increased cache to 5 minutes (was 2 min)
- Increased buffer to 150MB (was 50MB)
- Added back-buffer of 75MB
- Network timeout increased to 2 min
- More aggressive reconnection settings
- Added read-ahead buffer of 60s
- Frame dropping to catch up on delays
- Added _seekToResume() method with retry logic (max 10 attempts)
- Seek now waits until player is playing AND has duration loaded
- Added debug logging for resume position checks
- 500ms retry interval with 1.5s initial delay
- Fixed Hive Map type conversion with safe iteration
- Improved save logic to not require duration loaded
- Added debug logging for troubleshooting
- Save position even if duration not available yet
- Added resumePositions storage in MobileWatchHistory
- Save position on player exit (if not finished)
- Auto-seek to saved position on content load
- Clear resume position when content finished (80%+)
- Added _checkAndMarkWatched() method in NativePlayerScreen
- Moved watch tracking from immediate play to 80% completion
- Added seriesId/season/episodeNum params to NativePlayerScreen
- Removed premature markWatched calls from movies/series tabs
- Added MPV reconnect options (stream-lavf-o reconnect parameters)
- Implemented auto-reconnect on stream completion for live TV
- Added watchdog timer to detect stalled streams
- Max 5 reconnect attempts with exponential backoff
- Added in-memory caching for movies/series pagination in XtreamServiceMobile
- Fixed player controls appearing then instantly disappearing on touch
- Updated refresh methods to clear cache on pull-to-refresh
- Added releases/ to gitignore (APKs too large for GitHub)
Add `dart run build_runner build --delete-conflicting-outputs` step before Flutter build to ensure all generated files (Riverpod and Hive) are fresh and properly generated. This ensures no stale or incompatible generated code causes build failures.
Also update CACHEBUST to v4 to force Docker to bypass cache and apply all recent fixes.
Update CACHEBUST arg to 2025-12-08-v3 to ensure Docker doesn't use cached layers and rebuilds with the latest code fixes. This ensures the duplicate height line fix is included in the build.
Remove duplicate ..style.height = '100%' line that was left over from merge conflict resolution. This duplicate assignment may have been causing Flutter build compilation issues.