edde746
4929e7d42b
fix: hardcode app name in connection probe headers
2026-02-27 22:19:24 +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
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
edde746
4083837c3b
feat: still watching prompt on sleep timer expiry
2026-02-24 10:08:50 +01:00
edde746
403df31907
feat: native auto-update
...
close #521
2026-02-24 04:04:02 +01:00
edde746
9528b8f61a
feat: multi-IP QR code for companion remote
2026-02-24 02:31:24 +01:00
edde746
e23f472d78
refactor: centralize globalKey construction via buildGlobalKey()
2026-02-23 17:53:20 +01:00
edde746
778ac50116
perf: fast offline startup
...
close #511
2026-02-23 14:09:13 +01:00
edde746
8f50da4a75
fix: resolve all dart analyze warnings
...
- Migrate RadioListTile to RadioGroup API (Flutter 3.32+)
- Guard BuildContext usage across async gaps
- Use const BorderRadius.all / EdgeInsets.all constructors
- Extract nested ternaries into helpers
- Prefer .first over [0], ??= over if-null assignment
- Prefix unused FocusNode params with _
- Add library directive for dangling doc comments
2026-02-23 13:50:56 +01:00
edde746
4095cc27e1
perf: reduce redundant metadata API requests
2026-02-23 11:43:42 +01:00
edde746
1eb88e23f5
perf: cache-first metadata fetching for playback
2026-02-23 10:51:25 +01:00
edde746
edbe2a06be
refactor: deduplicate sheet, key handler, and service patterns
2026-02-23 10:25:57 +01:00
edde746
964b89aa67
fix(windows): release gamepad handles on window blur
2026-02-23 08:05:55 +01:00
edde746
26ff55e005
fix(android): auto buffer size to prevent OOM
2026-02-23 05:42:04 +01:00
edde746
7802beb41b
feat: play/shuffle folder contents
...
close #514
2026-02-23 02:19:57 +01:00
edde746
4eb55885f7
feat: metadata editing
...
close #338
2026-02-22 17:56:13 +01:00
edde746
83c0cce7f3
fix: ignore gamepad input when window is unfocused
...
close #509
2026-02-22 10:29:52 +01:00
edde746
3289ce0fbc
feat: fallback skip markers from chapter titles
2026-02-22 04:34:36 +01:00
edde746
9819c4f495
fix: move hub/onDeck API processing to isolates
2026-02-21 05:34:06 +01:00
edde746
1ebc2a85d1
fix: move cache JSON ops to isolates
2026-02-21 05:00:14 +01:00
edde746
3bfc24bf9b
feat: persist ambient lighting and make it mutually exclusive with shaders
...
close #499
2026-02-20 22:33:00 +01:00
edde746
1e6a1af1cf
feat: add user star ratings
...
close #411
2026-02-20 09:57:44 +01:00
edde746
89c7b79867
fix: use identifier as fallback key for EPG channels
2026-02-19 09:13:00 +01:00
edde746
8d5b5d2e0c
fix: guard against post-disposal stream controller access
2026-02-18 09:20:48 +01:00
edde746
756eb8d6f0
feat: add ambient lighting effect
...
close #477
2026-02-18 06:51:20 +01:00
edde746
53c94b14cc
feat: add back button exit confirmation on Android TV
...
close #467
2026-02-16 01:22:48 +01:00
edde746
7d29d7ba45
chore: format
2026-02-15 23:13:33 +01:00
edde746
77c124b528
Merge branch 'trailers-extras'
2026-02-15 23:11:30 +01:00
Matt Vogel
0bbcd854e4
feat: add trailers and extras support
...
Adds support for viewing and playing trailers and bonus content from Plex.
- Add getExtras() API method to fetch extras from Plex
- Add trailer/extras metadata fields (subtype, extraType, primaryExtraKey)
- Add play trailer button with film reel icon on media detail screen
- Add "Trailers & Extras" section below cast with horizontal scroll
- Support offline mode via cache fallback
- Preserve serverId/serverName for multi-server setups
2026-02-15 15:09:45 -05:00
edde746
eaad505d96
fix: reduce main-thread pressure during playback
2026-02-15 18:35:51 +01:00
edde746
292c4b5d82
fix: reduce main-thread DB I/O blocking in downloads
2026-02-15 17:55:02 +01:00
edde746
04438c8e45
refactor: code quality & format
2026-02-15 04:07:09 +01:00
edde746
9184bb8d40
Merge branch 'live-tv'
...
# Conflicts:
# lib/i18n/strings.g.dart
# lib/i18n/strings_de.g.dart
# lib/i18n/strings_en.g.dart
# lib/i18n/strings_es.g.dart
# lib/i18n/strings_fr.g.dart
# lib/i18n/strings_it.g.dart
# lib/i18n/strings_ko.g.dart
# lib/i18n/strings_nl.g.dart
# lib/i18n/strings_sv.g.dart
# lib/i18n/strings_zh.g.dart
# lib/screens/main_screen.dart
# lib/services/plex_client.dart
# lib/widgets/video_controls/desktop_video_controls.dart
2026-02-14 22:29:16 +01:00
edde746
4fc98426ff
feat: connection recovery on mobile resume and endpoint exhaustion
2026-02-14 22:11:00 +01:00
edde746
0d72c6c1a4
fix: external player on Android 11+
2026-02-14 20:19:27 +01:00
edde746
fb9a1cd77e
fix: downloaded media detail screen clear logo
2026-02-14 19:28:43 +01:00