edde746
f3c735e3a1
fix: remove Docker bridge IP filter
2026-03-09 17:35:28 +01:00
edde746
e69fab87d0
fix: handle DVR tune error responses and show to user
2026-03-09 11:33:54 +01:00
edde746
a3e738773b
fix: handle Metadata as list in DVR tune response
2026-03-09 10:52:57 +01:00
edde746
0fc64cdf81
fix: catch seek PlatformException at source, remove coordinator
...
Catch COMMAND_FAILED/NOT_INITIALIZED in PlayerNative.seek() and
PlayerAndroid.seek() directly, preventing unhandled PlatformException
crashes on macOS app resume. Remove the ~200-line
_PendingSeekCoordinator system and revert all callsites to direct
player.seek(clampSeekPosition(...)). Keep seekable property/stream
and media controls gating. Add ExoPlayer seekable emission.
2026-03-09 07:21:36 +01:00
edde746
d08c4c905f
fix: gamepad select registering as long press
2026-03-09 07:14:41 +01:00
edde746
965d9540fa
fix: double sparkle update check
2026-03-09 00:29:58 +01:00
edde746
16676bca49
perf: watch together CPU overhead
2026-03-08 16:57:15 +01:00
edde746
f85afbe576
fix: gamepad ANR on Android
2026-03-08 14:15:32 +01:00
edde746
de28691481
fix: track selection persistence with stale cache
2026-03-07 22:07:29 +01:00
edde746
b05d69b10f
fix: filter hub detail view by library section
...
close #638
2026-03-06 18:36:45 +01:00
edde746
c9a1bc97c4
fix: remove dead state paths and restore track hotkeys
2026-03-06 11:50:45 +01:00
edde746
c1e2bc36ea
refactor: share Apple MPV core and media helpers
2026-03-06 10:16:33 +01:00
edde746
72aed76a1c
fix: remove unused _applyFilterWithFallback
2026-03-06 07:55:59 +01:00
edde746
7ae293631a
fix: trust server-computed subtitle selection flags
...
The Plex server already applies all preference levels (account,
show/season, per-item) into stream `selected` flags. Remove redundant
client-side subtitleMode/account prefs logic and show/season metadata
fetching (2 fewer API calls per episode).
2026-03-06 04:25:47 +01:00
edde746
f3d24866b7
fix: trust Plex stream selection for subtitle defaults
2026-03-06 03:43:10 +01:00
edde746
985ba5d2c7
fix: toggle PiP button closes PiP when already active
2026-03-06 03:08:28 +01:00
edde746
8571ee74c4
fix: use addedAt for unwatched on-deck sort fallback
...
close #636
2026-03-05 19:57:36 +01:00
edde746
863f90f65d
fix: respect series-level subtitle mode for episodes
2026-03-05 18:55:44 +01:00
edde746
819d7b0f8f
fix: scope library display settings per user profile
...
close #630
2026-03-05 16:42:13 +01:00
edde746
db57fa73ce
feat: add option to hide bottom navigation bar labels
2026-03-05 15:05:48 +01:00
edde746
e6ee83d9c2
fix: preserve home screen scroll position on back navigation
2026-03-04 16:34:36 +01:00
edde746
551bd83ffe
fix: player disposed race condition
2026-03-04 14:37:51 +01:00
edde746
8cd48f3af5
fix: firstClient null check race
2026-03-04 10:01:40 +01:00
edde746
13b5d7bae8
feat: secondary subtitle tracks
...
close #625
2026-03-04 09:35:36 +01:00
edde746
3a76754af9
feat: custom GLSL shader import
...
close #624
2026-03-04 08:47:40 +01:00
edde746
18abcef8a2
fix: offload large UTF-8 decoding to background isolate
...
Prevents ANR when Dio's responseDecoder synchronously decodes large API
responses on the main thread. Responses >50KB use compute(). Also caches
MediaCodecList query results in ExoPlayerCore companion object.
2026-03-04 07:42:26 +01:00
edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
174c78bf67
fix: handle connectivity_plus PlatformException on Windows
2026-03-03 20:13:17 +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
013bcfbece
fix: library continue watching hidden
...
close #615
2026-03-03 12:17:37 +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
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
a008f86ee2
feat(ios): add picture-in-picture support
...
close #44
2026-03-02 14:06:11 +01:00
edde746
229d6b24e1
feat: crash log reporting
2026-03-02 07:29:21 +01:00
edde746
f96ef0740d
fix(android): move JSON parsing off main thread
2026-03-02 02:24:08 +01:00
edde746
9c7cb7439f
feat: add winget package manager support
2026-03-01 13:11:11 +01:00
edde746
138c8f9fd8
feat: auto picture-in-picture
...
close #527
2026-03-01 10:52:31 +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
8a5f1ddea9
feat: add audio normalization toggle (MPV loudnorm filter)
2026-03-01 02:49:48 +01:00
edde746
a6119414ca
Merge branch 'fix-plex-notifications'
2026-02-27 22:20:12 +01:00
edde746
4929e7d42b
fix: hardcode app name in connection probe headers
2026-02-27 22:19:24 +01:00
edde746
3103cb5ee1
fix: harden offline playback and exoplayer fallback
2026-02-27 21:02:30 +01:00
edde746
03d62d2e2b
fix: handle corrupted download paths missing leading slash
2026-02-27 19:05:05 +01:00
edde746
00667fe8b8
fix: add const constructors and remove unused imports
2026-02-27 15:43:34 +01:00
edde746
ab2f8cf6ff
fix: normalize corrupted download paths on startup
2026-02-27 15:43:34 +01:00