Commit Graph
253 Commits
Author SHA1 Message Date
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
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
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