edde746
059509354d
feat: configurable watch together relay server
2026-03-28 14:44:30 +01:00
edde746
53d50dbc3b
fix: guard scroll operations against infinite extents
2026-03-28 13:51:39 +01:00
edde746
46ebda944a
fix: flexible int parsing in PlexRole
2026-03-28 13:44:57 +01:00
edde746
0bb200a785
feat: play from beginning context menu option
...
close #761
2026-03-27 17:43:15 +01:00
edde746
d3602201c6
refactor: remove dead code
2026-03-27 17:39:43 +01:00
edde746
beb78fada0
fix: eager artwork dir init, guard back nav on root
2026-03-27 11:06:22 +01:00
edde746
a05efef3c8
fix: guard download action button focus node access
2026-03-27 10:39:50 +01:00
edde746
36d63860e2
chore: update pubspec.lock
2026-03-27 09:39:50 +01:00
edde746
ad9be7f132
Merge branch 'feature/server-tasks'
2026-03-27 09:38:24 +01:00
edde746
8e9968628a
fix: server tasks panel polish
2026-03-27 09:37:53 +01:00
edde746
e33db4f6d7
fix: auto-focus skip intro button on TV when controls visible
...
close #742
2026-03-26 20:33:23 +01:00
edde746
ab5ad3c839
fix: use hubs API for continue watching
...
close #748
2026-03-26 18:58:18 +01:00
edde746
b4b90eec63
fix: use forked material_symbols_icons for IconData compat
2026-03-26 08:32:16 +01:00
edde746
beff313814
fix: use Flutter 3.41.5 for arm64 builds
2026-03-26 07:12:09 +01:00
edde746
0dc9cd38af
fix: pin arm64 Flutter version before IconData final
2026-03-26 00:45:18 +01:00
edde746
8ff7676e60
fix: use continuous play queue for aired date episode order
...
close #756
2026-03-25 23:28:57 +01:00
edde746
bfe35220aa
fix: skip SAF picker on Android TV
2026-03-25 20:56:32 +01:00
edde746
843faee4c5
fix: run sqlite on background isolate
2026-03-25 20:50:35 +01:00
edde746
f8bfeb0ec6
fix: use stable Flutter channel for arm64 builds
2026-03-25 20:34:08 +01:00
edde746
dd441fee66
fix: ignore EOF completion events for live TV streams
2026-03-25 19:51:11 +01:00
edde746
2204b05d6c
fix: remove reconnect_at_eof from live TV stream options
2026-03-25 19:10:35 +01:00
edde746
a1841804b6
fix: non-primary CustomScrollViews in IndexedStack tabs
2026-03-25 19:10:35 +01:00
edde746
5e31ad9c67
Merge pull request #753 from micahmo/fix/single-season
...
Fix missing season tabs
2026-03-25 15:45:11 +01:00
edde746
fcc6186796
fix: dedupe live TV timeline heartbeat, delay initial send
2026-03-25 12:25:19 +01:00
edde746
23179f6d17
perf: ValueNotifier detail scroll, skip redundant arrow rebuilds
2026-03-25 08:12:18 +01:00
edde746
996e8621fa
perf: ValueNotifier scroll state, static skeletons, scoped selects
2026-03-25 08:03:47 +01:00
edde746
8ad1cb988f
fix: detach mpv surface before view removal in dispose
2026-03-25 07:25:32 +01:00
edde746
4cef99dda2
perf: coalesce watch together rebuilds, static TV overlays
2026-03-25 06:40:17 +01:00
edde746
4beeedd318
fix: library grid stuck skeletons on fast scroll
2026-03-25 06:35:01 +01:00
edde746
23043c61f4
fix: Tensor SoC detection for internal model IDs
2026-03-25 04:15:34 +01:00
edde746
8d56171bd2
perf: library grid scroll and idle frame rendering
...
- Window _loadedItems and focus nodes to bound memory growth
- Eager prefetch and image precaching near viewport
- Static skeleton placeholders during active scroll
- Throttle alpha bar updates, dynamic initial fetch size
- Fix discover timer scheduling frames when tab hidden
- Disable tickers for offscreen IndexedStack children
- Static image placeholder with fade-in transition
2026-03-24 17:19:28 +01:00
edde746
ff0fafe938
fix: speed step 0.1 -> 0.25 for keyboard shortcuts
...
close #741
2026-03-23 15:02:13 +01:00
edde746
8b7f369c16
fix: keyboard shortcuts for unmapped keys
...
close #740
2026-03-23 14:32:54 +01:00
edde746
9bd2774820
fix: race conditions in mpv dispose and track manager, add debug fallback trigger
2026-03-23 03:48:48 +01:00
edde746
cc7da5bbc9
fix: live tv channels for non-admin users
2026-03-22 15:58:25 +01:00
edde746
bd4e30e653
fix: external subtitles on android mpv
2026-03-22 15:34:49 +01:00
edde746
e759dafa87
fix: disable impeller on Tensor/NVIDIA GPUs
2026-03-22 14:35:42 +01:00
edde746
3ae2488adf
feat: screen lock
...
close #286
2026-03-22 11:48:34 +01:00
edde746
2f5b596fff
fix: disable pip on android tv
...
close #698
2026-03-22 11:17:45 +01:00
edde746
472ac90fea
feat: rewind on resume setting
...
close #735
2026-03-22 09:24:22 +01:00
edde746
e9dfee6870
fix: profile select back button bypass
...
close #737
2026-03-22 09:03:14 +01:00
edde746
48e57fd375
fix: match content frame rate
...
close #736
2026-03-22 08:12:16 +01:00
edde746
4b05ed79ea
fix: bump libmpv-android to v1.0.6
2026-03-22 04:59:31 +01:00
edde746
4365e70a78
fix(android): libmpv failed init reinit
2026-03-21 16:51:25 +01:00
edde746
e8c02d04ae
fix: linux titlebar height on non-GNOME DEs
2026-03-21 15:57:03 +01:00
edde746
0539c1d869
fix: overlay sheet position, scroll-to-selected in bottom sheets
2026-03-21 11:49:08 +01:00
edde746
1980ce92d5
fix: pip aspect ratio after exoplayer→mpv fallback
2026-03-21 09:19:21 +01:00
edde746
b5576fa6de
fix: reduce hub section vertical spacing
2026-03-21 09:05:21 +01:00
edde746
d355e07e10
refactor: switch to libmpv-android fork, fix ANR and track selection
2026-03-21 08:53:08 +01:00
edde746
09ff47e19f
fix: reduce CPU when paused and backgrounded on macOS
2026-03-21 08:36:25 +01:00
edde746
4ee4a766d6
fix: pip background thread layout crash
2026-03-21 07:54:04 +01:00
edde746
7ebbf75cb9
fix: handle background isolate shutdown on iOS
2026-03-21 01:43:34 +01:00
edde746
e95b768350
chore: update appcast.xml url
2026-03-21 00:04:10 +01:00
edde746
82f0d46acc
fix: update libass
2026-03-20 09:07:17 +01:00
edde746
bafba0b151
fix: guard cache put against non-Map response data
2026-03-20 08:29:36 +01:00
edde746
7a68218439
fix: guard setState with mounted in pairing screen
2026-03-20 08:07:29 +01:00
edde746
2d37d37596
refactor: extract TrackManager, fix subtitle bugs
...
- Extract track lifecycle logic from VideoPlayerScreen (3248→2928 lines) into TrackManager
- Parse isDefault/isForced for subtitle tracks in parseTrackList
- Emit forced flag from ExoPlayer's emitTrackList
- Fix detectSubtitleMimeType failing on URLs with query params
- Add missing external_ ID prefix in ExoPlayer addSubtitleTrack
- Replace polling loop with stream in selectAndApplyTracks
- Handle play() failure in resumeAfterSubtitleLoad
- Handle addExternalSubtitles failure in onBackendSwitched
2026-03-20 03:32:32 +01:00
edde746
d64c72f40e
fix: await external subs before track selection in backend fallback
2026-03-20 00:05:18 +01:00
edde746
efe375f817
fix: check track state before subscribing to broadcast stream
2026-03-19 23:38:50 +01:00
edde746
1f8dfd3587
fix: regenerate macos Podfile.lock
2026-03-19 21:48:01 +01:00
edde746
60eae5d14f
fix: reapply track selection and external subs after MPV fallback
2026-03-19 21:37:37 +01:00
edde746
5123a5ec48
chore: bump dependencies
2026-03-19 20:53:35 +01:00
edde746
dbb3ae38b3
chore: bump sentry_flutter to 9.15.0
2026-03-19 19:56:36 +01:00
edde746
fbf6fc988b
chore: update libass-android
2026-03-19 19:52:05 +01:00
edde746
17da465e4e
chore: bump mobile_scanner to 7.2.0
2026-03-19 19:49:57 +01:00
edde746
e096a4ccb8
fix: use direct TrackGroup refs for track selection, clear stale overrides
2026-03-19 18:58:07 +01:00
edde746
cc0305d84a
fix: set leafCount for offline season metadata
2026-03-19 05:14:17 +01:00
edde746
3f78686661
fix: download deletion using DB file paths
...
close #721
2026-03-19 05:07:27 +01:00
edde746
13604cca01
fix: defer nativeSurfaceChanged out of layout pass
2026-03-18 21:13:57 +01:00
edde746
eae4eacf00
Merge pull request #719 from micahmo/fix/delete-propagation-flat
...
Fix delete propagation when episodes are displayed in flat list
2026-03-18 17:00:55 +01:00
edde746
8bdf2b53d3
fix: reduce bottom sheet spacing
2026-03-18 09:46:48 +01:00
edde746
fb4f17a898
feat: support MKV ContentCompAlgo 0 (zlib) in ExoPlayer
2026-03-18 08:52:14 +01:00
edde746
ad0623334c
feat: approximate seeking for MKV files without Cues
2026-03-18 08:52:14 +01:00
edde746
13dcfd7551
fix: load downloaded subtitles for offline playback
...
close #718
2026-03-18 08:52:14 +01:00
edde746
053884a147
fix: use gpu-api=auto for mpv
...
close #715
2026-03-18 02:36:29 +01:00
edde746
4f893cb826
fix: incorrect queue sheet item sizing
2026-03-17 10:45:04 +01:00
edde746
94aa966f46
fix: enable WAL mode for sqlite
2026-03-17 10:31:39 +01:00
edde746
0fcdcf3c1f
fix: reduce image cache budgets and add memory pressure handling
2026-03-17 09:48:18 +01:00
edde746
4147bd0d86
feat: overlay timestamp inside timeline thumbnail preview
2026-03-16 08:03:28 +01:00
edde746
3ea3455772
fix: prevent SurfaceControl use-after-free
...
Synchronously null surface fields in dispose() before deferred view
removal, add session generation counter to cancel stale MPV fallbacks,
and use postAtFrontOfQueue for defense-in-depth message ordering.
2026-03-16 06:15:12 +01:00
edde746
a82c3d2d2d
feat: add grouping and type filtering for shared libraries
...
Show grouping chip for shared (mixed-type) libraries with options:
All, Movies, TV Shows, Seasons, Episodes. Filter with type=1,2,3,4
to exclude library section directory entries from /library/shared/all.
2026-03-16 05:58:36 +01:00
edde746
04ef1b8ad2
fix: guard against missing library in libraries screen
...
Use firstOrNull instead of firstWhere to prevent StateError crash
when selected library is temporarily absent from provider during
server re-probe after LOW_MEMORY events.
2026-03-16 02:45:01 +01:00
edde746
b009dd9c80
chore: remove unused workmanager and android_intent_plus dependencies
2026-03-15 22:55:18 +01:00
edde746
e9f1979e6c
refactor: remove dead getters from model classes
2026-03-15 22:55:18 +01:00
edde746
23906dd65d
refactor: remove dead code from provider files
2026-03-15 22:55:18 +01:00
edde746
630755cf7b
refactor: remove dead utility methods
...
Remove filterOutMusic, watchUserProfile, and watchHiddenLibraries
2026-03-15 22:55:18 +01:00
edde746
3c2f72d15f
refactor: remove dead methods from services
2026-03-15 22:55:18 +01:00
edde746
ff5cf06e60
chore: remove HttpTimingTransferListener debug logging
2026-03-15 22:47:51 +01:00
edde746
9798486724
chore: bump cronet
2026-03-15 22:38:06 +01:00
edde746
db6161d84e
refactor: replace numeric tab indexes with NavigationTabId
2026-03-15 22:31:54 +01:00
edde746
af0de5c0a9
fix: switch from OkHttp to Cronet
2026-03-15 22:00:51 +01:00
edde746
e0d9b4ee93
refactor: unify focus restoration for main screen tabs
...
Replace per-tab if-chains in _focusContent() and _selectTab() with
generic FocusableTab/TabVisibilityAware dispatch. Fixes search screen
focus on Android TV (sidebar → Search now works).
2026-03-15 21:55:22 +01:00
edde746
551be5bbef
feat: dynamic library tabs and shared library navigation
...
- Replace hardcoded 4-tab system with data-driven visible tab list
- Shared libraries show only Browse + Playlists tabs
- Fix dpad navigation for shared libraries (no hidden tab targets)
- Switch to TickerProviderStateMixin to support tab controller recreation
- Navigate to library screen when tapping shared library sections
- Persist tab selection by name instead of index
2026-03-15 21:36:17 +01:00
edde746
bbc7f0f665
fix: focus search input on search tab
2026-03-15 19:21:34 +01:00
edde746
8433d59432
feat: add Cmd/Ctrl+F shortcut to open search
...
close #705
2026-03-15 19:02:50 +01:00
edde746
59b3e6ce81
fix: eliminate duplicate API requests on startup
...
- Skip redundant notifyListeners in HiddenLibrariesProvider init when
set is empty (empty→empty is a no-op for consumers)
- Track last-seen hidden keys in DiscoverScreen to avoid reloading
content when the listener fires without an actual change
- Track previous online server set in MultiServerProvider; only re-check
DVR availability when a new server comes online
- Remove dead content-loading pipeline from libraries_screen (sorts,
pagination, filters, items) that was never rendered
- Move /media/providers fetch into PlexClient.create() init, replacing
lazy EPG cache and providing libraries including shared items
2026-03-15 18:23:32 +01:00
edde746
a5629c54f6
feat: mask unfocused digits in TV PIN input
2026-03-15 14:18:25 +01:00
edde746
45726a57ce
feat: log git commit hash
2026-03-15 13:51:09 +01:00
edde746
5f597ef567
fix: prefer exact language code match in track selection
...
Fixes #703
2026-03-15 11:40:45 +01:00
edde746
bf464b257d
fix: log full exception chain on ExoPlayer errors
2026-03-15 11:38:07 +01:00