edde746
5538e0627b
refactor: remove SeasonDetailScreen, unify into MediaDetailScreen
...
Extract EpisodeCard to its own widget file. MediaDetailScreen now handles
isSeason by showing episodes directly, with proper watch state tracking,
deletion handling, and D-pad focus navigation. Hide empty overview sections.
2026-03-11 23:08:39 +01:00
edde746
7febfa9771
fix: deduplicate episode fetching and use lazy list for flattened seasons
2026-03-11 22:35:30 +01:00
edde746
7014df7a0e
Merge pull request #680 from micahmo/fix/always-on-top
...
Fix issue with always on top getting stuck
2026-03-11 20:50:49 +01:00
edde746
d4e9364d29
fix: handle TogglePlayPauseEvent for macOS media key
...
close #679
2026-03-11 18:28:07 +01:00
edde746
4681d60850
fix: hide admin actions from non-admin users
...
close #677
2026-03-11 18:18:27 +01:00
edde746
78052dc07f
fix: player stuck on skip credits with no next episode
...
close #678
2026-03-11 18:02:33 +01:00
edde746
67c66ff0c1
fix: prevent layout shift for image placeholders
2026-03-11 15:02:38 +01: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
25c7f325b6
feat: use git commit SHA for sentry release version
2026-03-11 14:09:14 +01:00
edde746
5dbaf961b7
fix: ASS subtitles broken when DV mode enabled
...
close #674
2026-03-11 14:04:21 +01:00
edde746
b4471fab49
fix: add D3D11 fallback for gpu-api on Windows
2026-03-11 13:54:21 +01:00
edde746
307fd354d6
fix: make overlay sheets dismissible when no descendant is focused
...
close #673
2026-03-11 13:30:07 +01:00
edde746
a3b5557185
fix: use stream-lavf-o instead of stream-lavf-o-append for reconnect
...
stream-lavf-o-append is an mpv "action" that only works as an
init option, not a runtime property — all calls returned -3.
Using stream-lavf-o as a single property set works correctly.
2026-03-11 09:40:39 +01:00
edde746
3c491be690
fix: handle mpv end-file errors with global snackbar
2026-03-11 09:29:16 +01:00
edde746
580c1d82e5
fix: stuck network check on Linux without NetworkManager
...
close #670
2026-03-11 08:55:25 +01:00
edde746
4954c9c569
fix: replace tunneling reopen with simple parameter toggle
...
Removes the full player restart cycle for tunneling changes that was
causing infinite spinning/blank screen on Amlogic devices (Onn 4K Pro).
2026-03-11 05:08:43 +01:00
edde746
8f1b40d143
fix: handle string childCount in collections
2026-03-11 05:08:43 +01:00
edde746
666b59c293
refactor(native-player): share player helpers
2026-03-11 01:30:11 +01:00
edde746
7543a8c55b
refactor: clean up windows code
2026-03-10 22:24:14 +01:00
edde746
bfc7be2b80
fix: default to Vulkan on Windows
...
close #653
2026-03-10 19:42:43 +01:00
edde746
8b2c68f3ae
chore: switch Windows libmpv builds to SourceForge
2026-03-10 19:08:04 +01:00
edde746
9aa019fe6f
fix: ANR in detachSurface
2026-03-10 19:07:33 +01:00
edde746
23a100afdc
feat: auto-reconnect VOD playback after network loss
2026-03-10 18:47:31 +01:00
edde746
af2ac2c993
fix: suppress ASS GL thread crash, update ass-media to 0.4.0
2026-03-10 06:41:43 +01:00
edde746
166e73cdaa
fix: sync button focus nodes with actual action count
2026-03-10 06:08:55 +01:00
edde746
73fe9e054f
fix: guard unsafe .first/.last calls to prevent StateError
2026-03-10 03:50:12 +01:00
edde746
42e066288f
fix: clickable title event bubbling and movie support
2026-03-10 01:57:28 +01:00
edde746
682a04f047
feat: show per-server connection status on splash screen
2026-03-10 01:50:19 +01:00
edde746
29cb88e6e2
fix: translate remaining strings
2026-03-10 01:21:03 +01:00
edde746
6daf77c890
feat: convert settings dialogs to platform-adaptive menus
...
Replace AlertDialog-based selection dialogs with popup dropdowns on
desktop/TV and bottom sheets on mobile, matching the context menu
pattern. Fix popup background blending into cards by tinting surface.
2026-03-10 01:18:33 +01:00
edde746
0372840ee1
fix: localize EPG day names and reduce channel column width
...
close #661
2026-03-10 00:19:16 +01:00
edde746
3c51760203
feat: mouse-only clickable text on media cards
2026-03-09 23:56:24 +01:00
edde746
f3c735e3a1
fix: remove Docker bridge IP filter
2026-03-09 17:35:28 +01:00
edde746
7784cb7511
fix: TMDB icon gradient
2026-03-09 16:24:59 +01:00
edde746
82b0de9223
feat: display movie edition titles across all views
2026-03-09 16:16:37 +01:00
edde746
a6852d716f
fix: handle null fields in PlexHome deserialization
2026-03-09 15:42:33 +01:00
edde746
92dfe5b41f
fix: lazy Sparkle init to prevent macOS startup hang
2026-03-09 14:39:16 +01:00
edde746
16e96cdde0
fix: handle null fields in folder metadata deserialization
2026-03-09 14:10:37 +01:00
edde746
61e4bda616
fix: content strip text colors in light mode
...
close #659
2026-03-09 12:53:16 +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
43b9bd7038
fix: bump universal_gamepad to 1.5.4
2026-03-09 07:06:22 +01:00
edde746
2dddd00fd3
fix: d-pad navigation on Android
2026-03-09 06:01:15 +01:00
edde746
5be7b43cb8
fix: improve content strip text visibility
...
close #656
2026-03-09 01:04:14 +01:00
edde746
965d9540fa
fix: double sparkle update check
2026-03-09 00:29:58 +01:00
edde746
65bb7bd44e
fix: catch wakelock exceptions on Linux
2026-03-08 21:20:51 +01:00
edde746
a5ade78cd6
fix: remove unused variable warning
2026-03-08 19:40:11 +01:00
edde746
57420e51cf
fix: lazy client fetch in context menu
2026-03-08 19:03:03 +01:00
edde746
bec8b593be
fix: bump auto_updater
2026-03-08 18:50:19 +01:00
edde746
c62e406749
refactor: gate sentry behind build flag
2026-03-08 18:15:19 +01:00
edde746
16676bca49
perf: watch together CPU overhead
2026-03-08 16:57:15 +01:00
edde746
9e2e1f72ce
refactor: remove debug token i18n strings
2026-03-08 15:13:19 +01:00
edde746
f85afbe576
fix: gamepad ANR on Android
2026-03-08 14:15:32 +01:00
edde746
6fa6b34b59
fix: player stuck after show ends with no next episode
...
close #650
2026-03-08 13:51:25 +01:00
edde746
7a1f677c75
fix: content strip lint warnings
2026-03-07 22:10:45 +01:00
edde746
de28691481
fix: track selection persistence with stale cache
2026-03-07 22:07:29 +01:00
edde746
686a61ac74
fix: hero section bottom fade only applies to image
2026-03-07 20:52:28 +01:00
edde746
0b1f64ef8a
refactor: simplify mobile player controls
...
close #641
2026-03-07 20:48:17 +01:00
edde746
5b910fd3d7
fix: mpv config TextField dpad/back key navigation
...
Add PopScope to handle Android TV platform-level back, add down arrow
exit on last line, and fix back key trap when save preset is disabled.
2026-03-07 20:32:02 +01:00
edde746
c56e73eefe
feat: add content strip for dpad navigation
2026-03-07 20:17:28 +01:00
edde746
7cfa18e1e9
fix: remove redundant thumbnail popup during dpad timeline seeking
2026-03-07 18:29:52 +01:00
edde746
06034bb8e7
feat: scale queue items for tablet screens
...
close #644
2026-03-07 17:06:13 +01:00
edde746
7b20543fa1
fix: support non-1x playback speed in audio position bypass
...
Scale raw AudioTrack position by playback speed to convert from real
time to media time. Captures reference points on speed changes for
correct mid-playback transitions.
2026-03-07 16:40:48 +01:00
edde746
d207185130
fix: bypass DefaultAudioSink position clamp for large audio frames
...
Fixes video stutter on files with 120ms Opus audio frames (e.g. Amlogic
S905X4). DefaultAudioSink clamps getCurrentPositionUs to writtenDuration
which lags between bursts, creating a sawtooth pattern that drops video
frames. PositionFixAudioSink bypasses the clamp using the raw AudioTrack
position when the delegate falls behind.
2026-03-07 16:27:29 +01:00
edde746
66628e1bca
feat: add pt, ja, ru, pl, da, nb translations
2026-03-06 22:34:45 +01:00
edde746
beff4f9ca0
feat: add watch together playback rejoin flow
...
close #639
2026-03-06 20:42:18 +01:00
edde746
1318c54c0c
feat: improve performance overlay layout and add decoder details
2026-03-06 19:25:41 +01:00
edde746
b05d69b10f
fix: filter hub detail view by library section
...
close #638
2026-03-06 18:36:45 +01:00
edde746
7825490b0f
fix: filter Windows file-lock cache manager errors from Sentry
2026-03-06 18:30:47 +01:00
edde746
c06b0efedc
fix: correct linux package license metadata
2026-03-06 15:07:48 +01:00
edde746
43f4736936
fix: reopen ExoPlayer when tunneling mode changes
2026-03-06 13:49:03 +01:00
edde746
cf8f1849aa
fix: harden watch together teardown sync
2026-03-06 12:52:28 +01:00
edde746
c9a1bc97c4
fix: remove dead state paths and restore track hotkeys
2026-03-06 11:50:45 +01:00
edde746
581f665f58
fix: restore iOS inline player after PiP closes
2026-03-06 11:35:25 +01:00
edde746
7b3a8ad642
fix: guard missing client in season detail screen
2026-03-06 11:09:42 +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
f7ca80de77
Merge pull request #637 from micahmo/fix/setting-episode-artwork
...
Fix an issue setting episode artwork
2026-03-06 03:08:20 +01:00
edde746
9730ffd541
fix: coerce subtitleMode string from Plex API to num
2026-03-05 21:53:52 +01:00
edde746
232f018ae7
fix: report JSON deserialization errors
2026-03-05 21:00:52 +01:00
edde746
8571ee74c4
fix: use addedAt for unwatched on-deck sort fallback
...
close #636
2026-03-05 19:57:36 +01:00
edde746
9566e0b897
perf: parallelize show/season metadata fetches
2026-03-05 18:56:52 +01:00
edde746
863f90f65d
fix: respect series-level subtitle mode for episodes
2026-03-05 18:55:44 +01:00
edde746
22a733280a
fix: respect view mode in detail screens, disable scale in list mode
...
close #631
2026-03-05 17:38:38 +01:00
edde746
a4008d3d6b
fix: move mpv operations off UI thread
2026-03-05 16: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
c785ce1f88
fix: queue sheet image loading priority with itemExtent
2026-03-05 16:11:14 +01:00
edde746
0c3588210a
fix: pause hero auto-scroll on desktop background transition
2026-03-05 15:36:35 +01:00
edde746
db57fa73ce
feat: add option to hide bottom navigation bar labels
2026-03-05 15:05:48 +01:00
edde746
0269825179
fix: windows single instance mutex
2026-03-05 14:59:40 +01:00
edde746
588b413223
fix: browse tab scrolling after alpha jump libraries
2026-03-05 14:41:21 +01:00
edde746
a2cd3397c9
fix: desktop context menu position and bottom sheet sizing
2026-03-05 14:25:23 +01:00
edde746
268f293704
refactor: deduplicate Dolby Vision conversion code
...
- Extract shared processNal() for NAL classification/conversion logic
- Share DoviExtractorOutputWrapper between MKV and MP4 paths
- Deduplicate DV profile codec queries via deviceSupportsDvProfile()
- Collapse repeated doviTrackOutput access chain in stats
2026-03-05 12:02:33 +01:00
edde746
317d5dbdd9
feat: DV Profile 7→8.1 RPU conversion via libdovi
...
Convert Dolby Vision Profile 7 RPU NALUs to Profile 8.1 using libdovi
native bridge, preserving dynamic tone mapping on devices with DV8
decoders. Falls back to HEVC stripping when no DV8 decoder is present.
- Add JNI bridge (dovi_bridge.cpp) wrapping libdovi's RPU converter
- Download prebuilt libdovi from edde746/libdovi-builds releases
- DoviConvertingTrackOutput: DV81 mode converts RPUs, HEVC_STRIP strips
- Retry logic: if native DV7 decoding fails, auto-retry with conversion
- Performance overlay shows active DV conversion mode
2026-03-05 11:11:57 +01:00
edde746
7f2d548d32
fix: item 0 steals focus after sidenav return
2026-03-04 18:39:49 +01:00