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
edde746
edb285a279
feat: cache BIF file for instant preview thumbnails
...
close #565
2026-02-27 15:30:29 +01:00
edde746
1cdf1890cf
fix: download playback issues (doubled path, audio language, spinner)
2026-02-27 15:26:49 +01:00
Matt Vogel
e9218e0a3d
Fix duplicate Plex notifications and Flutter app name on login
...
Connection probe requests in testConnectionWithLatency were sent without
X-Plex-Client-Identifier, X-Plex-Product, or X-Plex-Device-Name headers.
Plex treated each anonymous probe as a new unknown device and fired a
"New Device" notification for every server tested (one per shared/owned
server), while displaying "Flutter" as the device name from the HTTP
user-agent.
Pass clientIdentifier through findBestWorkingConnection and all connection
test helpers so every probe request identifies itself as "Plezy" with the
persistent client UUID. This prevents spurious notifications and ensures
the device shows the correct app name in Plex's device list.
https://claude.ai/code/session_01V5VraujkNmk5GGPLyZ33fN
2026-02-26 08:21:06 -05:00
edde746
4588457319
refactor: consolidate files
2026-02-26 13:41:51 +01:00
edde746
2b5923d80b
feat: square art in hero sections
2026-02-26 13:00:55 +01:00
edde746
a38aac7829
fix: artwork changing not working
...
- Use PUT instead of POST and singular element path (art/poster) to
match Plex Web API behavior
- Set content type to application/octet-stream for binary uploads
- Add GestureDetector for mouse/touch tap support in artwork picker
- Always refresh detail screen metadata after returning from edit
2026-02-26 11:55:45 +01:00
edde746
414e5804eb
feat: add hide spoilers setting for unwatched episodes
2026-02-26 11:55:45 +01:00
edde746
5740d93a35
fix: download from homepage failing
2026-02-26 03:41:27 +01:00
edde746
659b59d450
fix: remove companion remote connection history
2026-02-26 01:08:46 +01:00
edde746
acf91107ad
fix: split combined recently added hubs by library
...
closes #552
2026-02-26 00:30:23 +01:00
edde746
3279bc7578
fix: sanitize dots in download filenames
...
close #556
2026-02-26 00:02:14 +01:00
edde746
383351d769
fix: detect invalid tokens and prevent startup hangs
...
close #553
2026-02-25 23:59:19 +01:00
edde746
3460fa8b32
fix: download retry failing with metadata cache miss
...
close #555
2026-02-25 23:25:10 +01:00
edde746
728c4854a5
feat: sparse-map pagination for library browse
2026-02-25 18:14:48 +01:00
edde746
6188d21c3d
perf: limit concurrent image transcode requests
2026-02-25 17:01:43 +01:00
edde746
88d7e2d319
feat: add audio passthrough toggle for desktop
2026-02-25 16:38:58 +01:00
edde746
b193a23524
fix: video stuck on still frame after long pause
...
close #536
2026-02-25 08:17:14 +01:00
edde746
af41d937c3
fix: remove DVR recording features (plex pass)
...
close #530
2026-02-24 23:13:38 +01:00
edde746
2f488bd395
fix: disable ambient lighting in picture-in-picture mode
...
closes #528
2026-02-24 17:05:41 +01:00