edde746
db57fa73ce
feat: add option to hide bottom navigation bar labels
2026-03-05 15:05:48 +01:00
edde746
588b413223
fix: browse tab scrolling after alpha jump libraries
2026-03-05 14:41:21 +01:00
edde746
a2cd3397c9
fix: desktop context menu position and bottom sheet sizing
2026-03-05 14:25:23 +01:00
edde746
7f2d548d32
fix: item 0 steals focus after sidenav return
2026-03-04 18:39:49 +01:00
edde746
5877673755
fix: reduce UI padding between media items
...
close #629
2026-03-04 18:36:12 +01:00
edde746
3b351d7634
fix: iOS OOM during PiP playback cycles
...
Cancel leaked stream subscriptions in video player dispose and flush
sample buffer layer on PiP teardown/cleanup to release video frames.
2026-03-04 17:34:30 +01:00
edde746
e6ee83d9c2
fix: preserve home screen scroll position on back navigation
2026-03-04 16:34:36 +01:00
edde746
8b57e810ab
feat: detail screen context menu button
2026-03-04 15:11:46 +01:00
edde746
8cd48f3af5
fix: firstClient null check race
2026-03-04 10:01:40 +01:00
edde746
13b5d7bae8
feat: secondary subtitle tracks
...
close #625
2026-03-04 09:35:36 +01:00
edde746
3a76754af9
feat: custom GLSL shader import
...
close #624
2026-03-04 08:47:40 +01:00
edde746
cc86afb31d
fix: sparkle update detection and startup hang
2026-03-04 01:09:35 +01:00
edde746
891c4f8c32
fix: reduce currently-airing program contrast
...
close #622
2026-03-03 23:40:07 +01:00
edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
c6ace690cb
refactor: clean up download code duplication
2026-03-03 16:31:02 +01:00
edde746
c98010234f
fix: warnings
2026-03-03 14:30:59 +01:00
edde746
02e175e4d3
feat: replace rustrak with glitchtip
2026-03-03 14:27:11 +01:00
edde746
013bcfbece
fix: library continue watching hidden
...
close #615
2026-03-03 12:17:37 +01:00
edde746
1c31f0effa
fix: request audio focus before player init guard
2026-03-02 23:12:00 +01:00
edde746
a00e2b78d6
feat: replace mpv config UI with raw text editor
2026-03-02 23:06:05 +01:00
edde746
c372920965
fix: resolve out-of-scope settingsService in video player
2026-03-02 18:26:05 +01:00
edde746
5ab6af1b02
feat: respect system 24h time format setting
...
Closes #605
2026-03-02 18:19:52 +01:00
edde746
34252b9ba7
fix: persist aspect ratio and shader settings
...
Closes #602 , closes #603
2026-03-02 18:19:46 +01:00
edde746
8d3f448fdf
feat(macos): add picture-in-picture support
2026-03-02 18:19:36 +01:00
edde746
a008f86ee2
feat(ios): add picture-in-picture support
...
close #44
2026-03-02 14:06:11 +01:00
edde746
5f1c51ff6c
fix: skip specials in playback order
...
close #601
2026-03-02 07:32:20 +01:00
edde746
229d6b24e1
feat: crash log reporting
2026-03-02 07:29:21 +01:00
edde746
36277076bd
fix(android): cap demuxer buffers + sync mpv dispose
2026-03-02 02:30:48 +01:00
edde746
0dbba6439d
fix: hide hero carousel indicators in dpad mode
...
close #600
2026-03-02 01:50:51 +01:00
edde746
3bf7ff3d48
feat: improve LiveTV guide visual contrast and polish
...
close #494
2026-03-01 12:24:56 +01:00
edde746
138c8f9fd8
feat: auto picture-in-picture
...
close #527
2026-03-01 10:52:31 +01:00
edde746
d1dacae581
feat: show server name in search results
...
close #515
2026-03-01 09:24:53 +01:00
edde746
a62a01b9c3
feat: bridge ExoPlayer logs to Dart + device info in logs screen
...
ExoPlayerCore emitLog() forwards native diagnostics (init, tracks,
tunneling, watchdog, errors, framerate, audio focus) to Dart via the
existing log-message event when debug logging is enabled. URIs are
redacted before forwarding. setLogLevel method channel wires into the
existing debug toggle in video_player_screen.
Logs screen now shows a device info header (app version, OS, model,
TV mode) and includes it in copy/upload output.
2026-03-01 04:59:35 +01:00
edde746
d0f2122944
feat: add tunneled playback setting + frame watchdog for HDR black screen
...
Adds a user-facing toggle for MediaCodec tunneling (Android/ExoPlayer)
and a rendered-frame watchdog that auto-falls back to MPV when ExoPlayer
produces 0 video frames after 8 seconds of audio playback.
2026-03-01 04:02:36 +01:00
edde746
bbfe7cf783
fix: use explicit mediacodec hwdec chain on android
2026-03-01 02:46:50 +01:00
edde746
0e84ce9166
fix: desktop context menu overflow
2026-02-28 15:00:59 +01:00
edde746
15e1f0b9e2
fix: use mediacodec on android
...
close #593
2026-02-28 12:35:43 +01:00
edde746
08399e5d37
feat: respect server collection mode in library browse
...
close #580
2026-02-28 07:06:48 +01:00
edde746
48c9dcae1b
fix: apply hide spoilers setting to hero section
...
close #588
2026-02-28 06:18:11 +01:00
Micah Morrison
c02f84dba0
Merge remote-tracking branch 'upstream/main' into feature/expand-episodes
2026-02-27 16:47:51 -05:00
edde746
a6119414ca
Merge branch 'fix-plex-notifications'
2026-02-27 22:20:12 +01:00
edde746
389a9622c3
fix: prevent OOM crash from infinite focus reclaim loop
...
Add re-entrancy guard to VideoPlayerScreen._onScreenFocusChanged()
and replace busy-wait spin loop with Completer in MediaDetailScreen.
2026-02-27 21:23:31 +01:00
edde746
3103cb5ee1
fix: harden offline playback and exoplayer fallback
2026-02-27 21:02:30 +01:00
edde746
7a0a911cd9
fix: prevent ASS subtitle stretching
...
close #579
2026-02-27 20:33:48 +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
11377362cb
fix: duplicate hero tag error in logs upload dialog
2026-02-27 15:26:49 +01:00
edde746
1cdf1890cf
fix: download playback issues (doubled path, audio language, spinner)
2026-02-27 15:26:49 +01:00
edde746
7f03c15779
fix: restore FocusTheme import in libraries screen
2026-02-27 12:53:21 +01:00
edde746
cc30bee83a
refactor: extract FocusableActionBar widget for reusable app bar actions
...
Replace duplicated focusable action button pattern across 8 screens with
a shared FocusableActionBar widget that handles focus nodes, D-pad
navigation, back key, and focus decoration automatically.
2026-02-27 11:55:19 +01:00