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
16676bca49
perf: watch together CPU overhead
2026-03-08 16:57:15 +01:00
edde746
beff4f9ca0
feat: add watch together playback rejoin flow
...
close #639
2026-03-06 20:42:18 +01:00
edde746
c1e2bc36ea
refactor: share Apple MPV core and media helpers
2026-03-06 10:16:33 +01:00
edde746
5877673755
fix: reduce UI padding between media items
...
close #629
2026-03-04 18:36:12 +01:00
edde746
13b5d7bae8
feat: secondary subtitle tracks
...
close #625
2026-03-04 09:35:36 +01:00
edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
e60b8d13b9
fix: improve error reporting data sanitization
2026-03-03 19:16:33 +01:00
edde746
01e61c590a
fix: tighten startup connection timeouts for dead servers
2026-03-02 23:09:09 +01:00
edde746
5ab6af1b02
feat: respect system 24h time format setting
...
Closes #605
2026-03-02 18:19:52 +01:00
edde746
796db94896
remove unused sliver_adaptive_media_builder
2026-03-01 10:08:17 +01:00
edde746
48c9dcae1b
fix: apply hide spoilers setting to hero section
...
close #588
2026-02-28 06:18:11 +01:00
edde746
5ff5441baa
fix: map ssa subtitle codec to .ass extension
...
close #569
2026-02-27 16:51:49 +01:00
edde746
9e0c3e7b68
fix: improve delete-from-server button safety
...
Rename "Delete" to "Delete from server" with distinct icon and
always-red styling to prevent accidental server deletions.
Closes #568
2026-02-27 14:49:47 +01:00
edde746
8eda892b68
feat: themed splash screen with status messages
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
a32422bb5e
chore: remove unused formatRelativeTime
2026-02-26 04:30:48 +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
4eb55885f7
feat: metadata editing
...
close #338
2026-02-22 17:56:13 +01:00
edde746
7f8d4c7946
fix: dpad focus for dialogs and buttons
2026-02-22 14:50:59 +01:00
edde746
23c4c400f0
feat: focus navigation for movie detail sections
...
close #464
2026-02-16 02:17:10 +01:00
edde746
53c94b14cc
feat: add back button exit confirmation on Android TV
...
close #467
2026-02-16 01:22:48 +01:00
edde746
90a40d034f
refactor: reuse MediaCard for extras
2026-02-15 22:59:43 +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
6f027f1015
fix: notify season screen when download is deleted
2026-02-14 18:37:28 +01:00
edde746
86a989a2f2
fix: open downloaded videos in external player on Android
2026-02-14 18:26:05 +01:00
Micah Morrison
336da4c110
Fix the colors of the delete buttons
2026-02-13 20:07:07 -05:00
edde746
fd53acbb92
fix(tv): use channel key for tuning and EPG matching
2026-02-13 17:23:02 +01:00
edde746
ca90600764
refactor(tv): tune live channel inside player screen
2026-02-12 17:47:51 +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
2ae6385913
fix(tv): playback stopping
2026-02-12 11:21:00 +01:00
edde746
403b1f6776
feat: live tv
2026-02-11 16:27:49 +01:00
edde746
5d40468dc2
feat: apply library density to hub rows and reduce grid sizes
...
close #433
2026-02-11 15:22:07 +01:00
edde746
03907db6c4
feat: external player support
...
close #388
2026-02-11 14:59:52 +01:00
edde746
6e9b78e5b5
fix: missing translations, simplify translations
2026-02-10 21:37:27 +01:00
Matt Vogel
372767b142
Add Companion Remote for mobile-to-desktop control
2026-02-09 14:19:54 -05:00
edde746
8aa7d15dca
chore: upgrade dependencies and fix new lint warnings
2026-02-09 09:06:31 +01:00
edde746
a5a72147c7
feat: show ratings
...
close #410
2026-02-08 16:03:23 +01:00
edde746
2a1c99ac06
fix: dialog autofocus and button sizing
2026-02-08 10:30:14 +01:00
edde746
ff75cf8ddb
fix: account for playback speed in "Ends at" calculation
...
close #392
2026-02-06 19:32:27 +01:00
edde746
44eae4ef84
refactor: extract BaseNotifier and HierarchicalEventMixin
2026-02-06 17:01:56 +01:00
edde746
bbee74ef9d
fix(propagation): scope events by server
2026-02-06 09:58:57 +01:00
Micah Morrison
f6aa8e51e0
Improve media deletion propagation throughout the app
2026-02-05 21:55:04 -05:00
edde746
a7ac681fdc
refactor: extract shared mixins and helpers
2026-02-04 11:11:01 +01:00
edde746
16884a7bca
refactor: eliminate duplicate logic across detail screens and helpers
2026-02-04 09:46:45 +01:00