- Added FocusTraversalGroup for D-pad navigation
- Handled text field submission to focus next field
- Configured keyboard actions (Next/Done)
- Added SingleChildScrollView preventing focus/keyboard issues
- 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.