edde746
229d6b24e1
feat: crash log reporting
2026-03-02 07:29:21 +01:00
edde746
9dc0654225
fix(android): prevent dispatchWindowVisibilityChanged NPE during disposal
2026-03-02 06:10:00 +01:00
edde746
36277076bd
fix(android): cap demuxer buffers + sync mpv dispose
2026-03-02 02:30:48 +01:00
edde746
f96ef0740d
fix(android): move JSON parsing off main thread
2026-03-02 02:24:08 +01:00
edde746
6bee1a6c38
fix(android): add opensles audio fallback
2026-03-02 02:05:24 +01:00
edde746
0dbba6439d
fix: hide hero carousel indicators in dpad mode
...
close #600
2026-03-02 01:50:51 +01:00
edde746
7ac888cd46
fix(windows): installer norun arg
2026-03-01 20:10:03 +01:00
edde746
938291dbf6
bump mpvkit
2026-03-01 16:55:59 +01:00
edde746
f5715987fc
feat: migrate iOS to scene lifecycle
2026-03-01 15:06:45 +01:00
edde746
7c0e86c3cf
bump mpvkit
2026-03-01 13:59:44 +01:00
edde746
9c7cb7439f
feat: add winget package manager support
2026-03-01 13:11:11 +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
3a5cab956d
refactor: extract shared Android utilities from player cores
2026-03-01 10:40:59 +01:00
edde746
796db94896
remove unused sliver_adaptive_media_builder
2026-03-01 10:08:17 +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
ea9e1a3dc6
fix: bypass IME stage for dpad events
2026-03-01 04:59:35 +01:00
edde746
54ceee18a6
fix: remove alpha 0.999 hack from mpv SurfaceView
...
No longer needed since Flutter uses RenderMode.texture (TextureView),
which composites above SurfaceView naturally without overlay conflicts.
2026-03-01 04:02:56 +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
1d739c74ec
fix: use universal APK for Amazon Appstore
...
Amazon Appstore doesn't auto-target by ABI like Google Play,
so split APKs could serve the wrong architecture to devices.
2026-03-01 03:47:46 +01:00
edde746
5dfc5af4c5
fix: only blur episode thumbnails
...
close #595
2026-03-01 03:01:22 +01:00
edde746
8a5f1ddea9
feat: add audio normalization toggle (MPV loudnorm filter)
2026-03-01 02:49:48 +01:00
edde746
bbfe7cf783
fix: use explicit mediacodec hwdec chain on android
2026-03-01 02:46:50 +01:00
edde746
b78bc3e869
fix: only show timeline thumbnail on direct timeline interaction
2026-02-28 19:48:46 +01:00
edde746
2405cd179b
fix: use forked libass-android with font buffering fix
2026-02-28 19:00:55 +01:00
edde746
fa9c5afeb8
fix: force FFmpeg for FLAC audio decoding
2026-02-28 15:24:31 +01:00
edde746
0e84ce9166
fix: desktop context menu overflow
2026-02-28 15:00:59 +01:00
edde746
9f81671603
fix: suppress repeated android log spam from MPV surface and stats polling
...
- Deduplicate android-surface-size updates with lastSurfaceSize cache
- Short-circuit ensureFlutterOverlayOnTop after initial application
- Remove deprecated cache-used property query
- Skip unavailable MPV properties on Android (display-fps, HDR metadata)
- Gate video-dependent stats queries behind hasVideo check
2026-02-28 15:00:29 +01:00
edde746
15e1f0b9e2
fix: use mediacodec on android
...
close #593
2026-02-28 12:35:43 +01:00
edde746
014f9456f6
fix: defer view removal to avoid AOSP dispatchWindowVisibilityChanged NPE
2026-02-28 10:23:28 +01:00
edde746
1bb4adfcf1
fix: don't pause playback on duckable audio focus loss
...
close #592
2026-02-28 09:22:13 +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
edde746
078f6b29d5
fix: recalculate video surface size on orientation change
...
close #587
2026-02-28 06:16:52 +01:00
edde746
60d1431443
Merge pull request #538 from micahmo/feature/expand-episodes
...
Allow episode descriptions to be expanded
2026-02-28 05:48:22 +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
18614022c0
feat: auto-dismiss skip segment buttons
...
closes #584
2026-02-27 22:13:03 +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
4cebff4367
move debug output
2026-02-27 21:19:52 +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
5ff5441baa
fix: map ssa subtitle codec to .ass extension
...
close #569
2026-02-27 16:51:49 +01:00
edde746
c1e9911841
chore: update MPVKit to 0.41.0 on iOS/macOS
2026-02-27 16:41:27 +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
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
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
b549432250
ci: exclude generated .g.dart files from sonar
2026-02-27 14:34:06 +01:00
edde746
b100c356fc
ci: add flutter pub get to sonar workflow
2026-02-27 14:33:47 +01:00
edde746
045295b4c1
ci: add sonar project properties
2026-02-27 14:29:36 +01:00
edde746
ad9556e484
ci: add SonarQube workflow
2026-02-27 14:27:10 +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
edde746
8559037a50
fix: logs screen d-pad navigation
2026-02-27 11:37:11 +01:00
edde746
732c09eec1
fix: cancel status stream subscription on dispose
...
Closes #571
2026-02-27 09:11:16 +01:00
edde746
602982d426
fix: remove low memory warnings during playback
...
Closes #576
2026-02-27 08:53:38 +01:00
edde746
7472e3a2f7
fix: broken imports
2026-02-26 14:57:37 +01:00
edde746
4588457319
refactor: consolidate files
2026-02-26 13:41:51 +01:00
edde746
e489a97847
fix: throttle demuxer-cache-time updates
2026-02-26 13:12:25 +01:00
edde746
2b5923d80b
feat: square art in hero sections
2026-02-26 13:00:55 +01:00
edde746
5cf5b2f0a0
fix: mpv destroy/create ANR
2026-02-26 12:56:02 +01:00
edde746
a56ef0e3ca
fix: throttle cache state parsing
2026-02-26 12:28:42 +01:00
edde746
8eda892b68
feat: themed splash screen with status messages
2026-02-26 11:55:45 +01:00
edde746
4b6c82b071
fix: hide alpha jump bar for small libraries
2026-02-26 11:55:45 +01:00
edde746
79350b8d71
feat: set avfoundation as preferred audio output on macOS
2026-02-26 11:55:45 +01:00
edde746
a5fa8a4c99
fix: don't clear buffer state on playback restart
2026-02-26 11:55:45 +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
a32422bb5e
chore: remove unused formatRelativeTime
2026-02-26 04:30:48 +01:00
edde746
e25fb4c10f
fix: ExoPlayer resume position lost on tunneling change
2026-02-26 04:19:17 +01:00
edde746
5740d93a35
fix: download from homepage failing
2026-02-26 03:41:27 +01:00
edde746
98776b40f5
fix: show sync controls as compact top bar
...
close #548
2026-02-26 03:41:19 +01:00
edde746
3418241c04
fix: disable tunneling for FFmpeg-only audio codecs
2026-02-26 02:14:22 +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
0f4920cc18
fix: reduce ExoPlayer buffer limits
...
close #546
2026-02-25 23:43:43 +01:00
edde746
3460fa8b32
fix: download retry failing with metadata cache miss
...
close #555
2026-02-25 23:25:10 +01:00
edde746
bf3f5282f2
fix: skip intro button staying on screen
...
close #550
2026-02-25 23:03:07 +01:00
edde746
c480e44e0e
fix: skeleton card visibility and layout
2026-02-25 22:54:15 +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
fc5fcbb0db
fix: google tv virtual remote dpad
2026-02-25 16:13:53 +01:00
edde746
93f693c5c4
fix: macos folder picker entitlement
2026-02-25 15:59:06 +01:00
edde746
aa6a5ec234
docs: update HDR platform support info
2026-02-25 15:18:39 +01:00
edde746
b193a23524
fix: video stuck on still frame after long pause
...
close #536
2026-02-25 08:17:14 +01:00
edde746
cb39945a9d
fix: watch together clock drift
...
close #534
2026-02-25 07:50:17 +01:00
edde746
45e792e3ab
fix: ESC exits fullscreen without closing video player
...
close #533
2026-02-25 07:17:24 +01:00
edde746
50660013cc
fix: restore tap/click handling in folder tree view
2026-02-24 23:54:42 +01:00
edde746
e0489b68d5
fix: use theme colors in video control sheets for light mode support
2026-02-24 23:40:08 +01:00
edde746
af41d937c3
fix: remove DVR recording features (plex pass)
...
close #530
2026-02-24 23:13:38 +01:00
edde746
238391b886
fix: appcast single item with release notes
2026-02-24 18:07:32 +01:00
edde746
1eec3d280b
fix: WinSparkle platform filtering and version display
2026-02-24 17:42:41 +01:00