Commit Graph
60 Commits
Author SHA1 Message Date
edde746 a3e738773b fix: handle Metadata as list in DVR tune response 2026-03-09 10:52:57 +01:00
edde746 de28691481 fix: track selection persistence with stale cache 2026-03-07 22:07:29 +01:00
edde746 c1e2bc36ea refactor: share Apple MPV core and media helpers 2026-03-06 10:16:33 +01:00
edde746 e6ee83d9c2 fix: preserve home screen scroll position on back navigation 2026-03-04 16:34:36 +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 013bcfbece fix: library continue watching hidden
close #615
2026-03-03 12:17:37 +01:00
edde746 f96ef0740d fix(android): move JSON parsing off main thread 2026-03-02 02:24:08 +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 edb285a279 feat: cache BIF file for instant preview thumbnails
close #565
2026-02-27 15:30:29 +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 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 383351d769 fix: detect invalid tokens and prevent startup hangs
close #553
2026-02-25 23:59:19 +01:00
edde746 728c4854a5 feat: sparse-map pagination for library browse 2026-02-25 18:14:48 +01:00
edde746 af41d937c3 fix: remove DVR recording features (plex pass)
close #530
2026-02-24 23:13:38 +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 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 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 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
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 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 b3ff48feca fix(tv): live playback and timeline keepalive
Disable MKV Cues seeking for live streams, fix timeline params.
2026-02-14 03:33:58 +01:00
edde746 f4d940af10 fix(tv): add diagnostic logging for multi-DVR issues
Also remove suspicious Uri.decodeComponent on lineup parameter.
2026-02-13 16:29:33 +01:00
edde746 a4d4e2e1f8 fix(tv): query all EPG providers for multi-DVR support 2026-02-13 14:16:44 +01:00
edde746 426f6ab6ba fix(tv): misc improvements 2026-02-13 00:01:54 +01:00
edde746 ac1dae25b8 feat(tv): add What's On tab with API-driven hubs and show schedule 2026-02-12 16:46:15 +01:00
edde746 80f26b07c0 feat(tv): inline EPG guide grid with provider endpoint discovery 2026-02-12 14:16:10 +01:00
edde746 2ae6385913 fix(tv): playback stopping 2026-02-12 11:21:00 +01:00
edde746 a1d78562d6 fix(tv): playback 2026-02-12 03:52:51 +01:00
edde746 403b1f6776 feat: live tv 2026-02-11 16:27:49 +01:00
edde746 8aa7d15dca chore: upgrade dependencies and fix new lint warnings 2026-02-09 09:06:31 +01:00
edde746 3459c9f59d chore: format 2026-02-08 16:03:40 +01:00
edde746 bc14f20ee6 Merge branch 'feature/thumbnail-previews' 2026-02-07 20:57:39 +01:00
edde746 05abf40c59 fix: thumbnail preview probe improvements 2026-02-07 20:57:12 +01:00
edde746 747fee0889 feat: log uploading 2026-02-07 20:09:30 +01:00
edde746 5c225bb89e feat: alpha jump bar
close #349
2026-02-05 10:15:59 +01:00
Micah Morrison 41bf2f4ede Add the ability to delete media items 2026-02-01 23:03:04 -05:00
edde746 a3b5dfecfb refactor: clean up 2026-01-28 05:22:56 +01:00
edde746 d3c7b55213 refactor: simplify server connection logic 2026-01-28 04:23:27 +01:00
edde746 b5726fe4b7 chore: format 2026-01-20 13:46:44 +01:00
edde746 60c95c58fe fix: cross-device watch progress sync
close #240
2026-01-15 11:45:13 +01:00
zhubowen 570f1fdc58 feat(plex): improve video content filtering and directory parsing 2026-01-07 19:59:57 +08:00
zhubowen da1a4e7aa8 fix(tv): include episodes in video content filtering 2026-01-07 19:33:35 +08:00
edde746 5ed2532bf1 feat: global hubs with settings toggle
close #216 & #217
2026-01-06 23:23:03 +01:00