edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
8f3d52142d
fix: watch together sync bugs and code quality
...
- Reset _firstPlayCompleted on detach so episode switches wait for peers
- Remove duplicate host join announcement from sync manager
- Use dedicated isPlaying field in sessionConfig with legacy fallback
- Replace Future.delayed with cancellable Timer to prevent sync indicator flicker
- Make Participant fields final and constructor const
2026-03-03 21:41:32 +01:00
edde746
cb7de47aed
fix: guard ScrollController.position access in HorizontalScrollWithArrows
...
Prevents "Too many elements" StateError on Android TV when the controller
temporarily has multiple positions during widget rebuilds.
2026-03-03 20:45:38 +01:00
edde746
174c78bf67
fix: handle connectivity_plus PlatformException on Windows
2026-03-03 20:13:17 +01:00
edde746
19c36ca340
fix: normalize Sentry release version across platforms
2026-03-03 20:02:07 +01:00
edde746
e60b8d13b9
fix: improve error reporting data sanitization
2026-03-03 19:16:33 +01:00
edde746
1b673743b2
fix: handle int end-file reason from mpv on Windows/Linux
2026-03-03 19:00:32 +01:00
edde746
34e8c179fe
fix: guard PiP calls on unsupported platforms
2026-03-03 19:00:32 +01:00
edde746
c6ace690cb
refactor: clean up download code duplication
2026-03-03 16:31:02 +01:00
edde746
7a979bed2f
fix: harden download callbacks against stale status events
...
Guard _onDownloadFailed, _onDownloadPermanentlyFailed, and cancel
handler against overwriting completed downloads. Add
resumeFromBackground() for iOS background transitions.
2026-03-03 15:20:13 +01:00
edde746
e46bd71fa7
fix: prevent completed downloads from restarting on app launch
...
Race condition between trackTasks() completion callbacks and the orphan
scan caused completed items to be re-queued on every app restart (#616 ).
2026-03-03 15:02:40 +01:00
edde746
c98010234f
fix: warnings
2026-03-03 14:30:59 +01:00
edde746
02e175e4d3
feat: replace rustrak with glitchtip
2026-03-03 14:27:11 +01:00
edde746
013bcfbece
fix: library continue watching hidden
...
close #615
2026-03-03 12:17:37 +01:00
edde746
ebf2d1e516
fix: shorten nav labels
...
close #612
2026-03-03 12:13:43 +01:00
edde746
4bce668df6
fix: asymmetric divider in track sheet on landscape
2026-03-03 12:04:03 +01:00
edde746
c64c7defc3
fix: disable session tracking
2026-03-03 11:05:54 +01:00
edde746
1629801074
feat: add swipe-up content strip for mobile video controls
2026-03-03 11:03:31 +01:00
edde746
cd36e3acb0
feat: switch crash reporting from BugSink to Rustrak
2026-03-03 09:19:25 +01:00
edde746
7001032e51
feat: combine audio & subtitle track sheets into one
2026-03-03 07:16:45 +01:00
edde746
1c31f0effa
fix: request audio focus before player init guard
2026-03-02 23:12:00 +01:00
edde746
01e61c590a
fix: tighten startup connection timeouts for dead servers
2026-03-02 23:09:09 +01:00
edde746
a00e2b78d6
feat: replace mpv config UI with raw text editor
2026-03-02 23:06:05 +01:00
edde746
b5904bc477
fix: auto-retry large downloads after native retries exhausted
...
Increase native retries 3→5 and add app-level auto-retry (3 rounds,
30s delay) so large downloads that fail with "unexpected end of stream"
recover automatically. 404s fail immediately without retry.
2026-03-02 21:43:01 +01:00
edde746
47f2afb665
feat: bottom sheet polish
2026-03-02 21:24:53 +01:00
edde746
3b2e278868
fix: hide redundant items in context menu
2026-03-02 20:42:47 +01:00
edde746
8baa84c06f
fix: use player.state.track for selected subtitle check
2026-03-02 19:25:13 +01:00
edde746
94395feaba
feat: implement sub-visibility toggle
...
Closes #597
2026-03-02 19:07:56 +01:00
edde746
c372920965
fix: resolve out-of-scope settingsService in video player
2026-03-02 18:26:05 +01:00
edde746
5ab6af1b02
feat: respect system 24h time format setting
...
Closes #605
2026-03-02 18:19:52 +01:00
edde746
34252b9ba7
fix: persist aspect ratio and shader settings
...
Closes #602 , closes #603
2026-03-02 18:19:46 +01:00
edde746
8d3f448fdf
feat(macos): add picture-in-picture support
2026-03-02 18:19:36 +01:00
edde746
7ebbfb9ef7
fix(i18n): add missing pip keys
2026-03-02 14:31:40 +01:00
edde746
a008f86ee2
feat(ios): add picture-in-picture support
...
close #44
2026-03-02 14:06:11 +01:00
edde746
5f1c51ff6c
fix: skip specials in playback order
...
close #601
2026-03-02 07:32:20 +01:00
edde746
229d6b24e1
feat: crash log reporting
2026-03-02 07:29:21 +01:00
edde746
36277076bd
fix(android): cap demuxer buffers + sync mpv dispose
2026-03-02 02:30:48 +01:00
edde746
f96ef0740d
fix(android): move JSON parsing off main thread
2026-03-02 02:24:08 +01:00
edde746
0dbba6439d
fix: hide hero carousel indicators in dpad mode
...
close #600
2026-03-02 01:50:51 +01:00
edde746
9c7cb7439f
feat: add winget package manager support
2026-03-01 13:11:11 +01:00
edde746
3bf7ff3d48
feat: improve LiveTV guide visual contrast and polish
...
close #494
2026-03-01 12:24:56 +01:00
edde746
138c8f9fd8
feat: auto picture-in-picture
...
close #527
2026-03-01 10:52:31 +01:00
edde746
796db94896
remove unused sliver_adaptive_media_builder
2026-03-01 10:08:17 +01:00
edde746
d1dacae581
feat: show server name in search results
...
close #515
2026-03-01 09:24:53 +01:00
edde746
a62a01b9c3
feat: bridge ExoPlayer logs to Dart + device info in logs screen
...
ExoPlayerCore emitLog() forwards native diagnostics (init, tracks,
tunneling, watchdog, errors, framerate, audio focus) to Dart via the
existing log-message event when debug logging is enabled. URIs are
redacted before forwarding. setLogLevel method channel wires into the
existing debug toggle in video_player_screen.
Logs screen now shows a device info header (app version, OS, model,
TV mode) and includes it in copy/upload output.
2026-03-01 04:59:35 +01:00
edde746
d0f2122944
feat: add tunneled playback setting + frame watchdog for HDR black screen
...
Adds a user-facing toggle for MediaCodec tunneling (Android/ExoPlayer)
and a rendered-frame watchdog that auto-falls back to MPV when ExoPlayer
produces 0 video frames after 8 seconds of audio playback.
2026-03-01 04:02:36 +01:00
edde746
5dfc5af4c5
fix: only blur episode thumbnails
...
close #595
2026-03-01 03:01:22 +01:00
edde746
8a5f1ddea9
feat: add audio normalization toggle (MPV loudnorm filter)
2026-03-01 02:49:48 +01:00
edde746
bbfe7cf783
fix: use explicit mediacodec hwdec chain on android
2026-03-01 02:46:50 +01:00
edde746
b78bc3e869
fix: only show timeline thumbnail on direct timeline interaction
2026-02-28 19:48:46 +01:00