edde746
6d7cdc4ef4
fix: preserve chapters/markers in cache during watch state sync
2026-03-15 01:04:13 +01:00
edde746
4f736c555b
fix: make PlexMetadata type/key/title nullable for folder items
...
Plex API returns Directory entries without type field, causing
TypeError crash in fromJson. Made fields nullable and migrated
callers to use mediaType enum and displayTitle getter instead
of raw string access.
2026-03-14 05:40:14 +01:00
edde746
7a6b866c28
fix(livetv): fetch boundary-spanning programs
...
close #686
2026-03-13 18:45:00 +01:00
edde746
912ebc2f90
fix: cooldown resume health probes, debounce connectivity, coalesce concurrent checks
...
Add per-platform cooldown on resume health probes (10s mobile, 2min
desktop). Debounce connectivity listener by 2s. Coalesce concurrent
checkServerHealth and reconnectOfflineServers into single in-flight
futures.
2026-03-12 02:52:14 +01:00
edde746
a17458ff9b
fix: handle DBusServiceUnknownException on Linux without NetworkManager
2026-03-12 02:24:00 +01:00
Micah Morrison
32ae51142f
Respect the Plex server library season view mode
2026-03-11 16:42:49 -04:00
edde746
d1bb99635a
feat: configurable intro/credits marker regex patterns
...
Add settings to customize regex patterns for matching intro and credits
markers in chapter titles, with the current hardcoded values as defaults.
Also reclassifies real markers with non-standard type strings against the
configured patterns.
2026-03-11 15:00:24 +01:00
edde746
666b59c293
refactor(native-player): share player helpers
2026-03-11 01:30:11 +01:00
edde746
682a04f047
feat: show per-server connection status on splash screen
2026-03-10 01:50:19 +01:00
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