edde746
9e8cfbc7dd
fix(windows): keep video-child input on the Flutter view
...
Create the mpv host window with WS_DISABLED so Windows skips the video subtree
when it picks the window that owns a contact and hands the input to the parent
Flutter view instead. Touch over the video never reached Flutter before: mpv's
inner window owns the contact from its own thread, and neither relay worked
from there - Flutter resolves WM_POINTER with GetPointerInfo, which only
answers for a message the calling thread retrieved, and the system discards a
cross-thread pointer send outright. WS_EX_TRANSPARENT and an HTTRANSPARENT
WM_NCHITTEST reply are both same-thread-only, so disabling the subtree is the
one hit-test opt-out that applies across threads. The mouse relay stays for
input that still reaches mpv's window.
Repair the contract test that covers this. It drove its pointer assertions with
cross-thread sends that Windows drops, so every touch assertion had been dead
since it was added and the suite fails "primary touch must press once" on main.
Relaying those sends through the window's own thread runs all eight tests, and
injected mouse and touch presses over the disabled host now assert delivery to
the parent view; removing WS_DISABLED fails the suite.
close #1556
2026-07-26 19:04:36 +02:00
edde746
7e05686a7c
fix(windows): restore x64 and arm64 builds
2026-07-26 15:32:02 +02:00
edde746
5ee3120a97
fix(media): distinguish leaf and aggregate watch state
...
close #1610
2026-07-26 14:58:38 +02:00
edde746
60cc983471
feat(downloads): remove playlist sync downloads together
...
close #1656
2026-07-26 14:58:38 +02:00
edde746
1fea9ef6e3
fix(search): recover omitted Plex media categories
...
close #1598
2026-07-26 14:58:38 +02:00
edde746
8ef977d890
fix(windows): route touch input over video
2026-07-26 14:58:37 +02:00
edde746
ecc55d9b36
fix(android): retry ExoPlayer after decoder loss
...
close #1540
2026-07-26 14:58:21 +02:00
edde746
f5661c766e
perf(tv): tint inactive row artwork
2026-07-26 14:58:21 +02:00
edde746
829d3745a1
fix(tvos): restore native text input navigation
2026-07-26 07:08:01 +02:00
edde746
71735354b9
fix(tvos): unify remote and text input ownership
2026-07-26 07:08:01 +02:00
edde746
fcaa81bf3c
fix(artwork): preserve clear-logo aspect ratios
2026-07-26 04:34:08 +02:00
edde746
ef183437d4
fix(jellyfin): keep login identity metadata valid
2026-07-26 04:24:56 +02:00
edde746
7c6eaac2d0
fix(android): render double-NUL ASS subtitles
...
close #1681
2026-07-26 04:24:56 +02:00
edde746
3b1e71b3fa
feat(player): support playback speeds up to 8x
...
close #1545
2026-07-26 04:24:55 +02:00
edde746
2a25f21e27
fix(plex): stop Live TV caption burn-in
...
close #1590
2026-07-26 04:24:55 +02:00
edde746
e251273322
feat(downloads): warn about Android background restrictions
2026-07-26 04:24:55 +02:00
edde746
1b3c74550f
fix(tvos): make remote input lifecycle engine-owned
2026-07-26 03:41:19 +02:00
edde746 and Evan J
c9543d4af0
feat(media): show directors in detail info rows
...
Co-authored-by: Evan J <42357644+ejach@users.noreply.github.com >
2026-07-25 22:40:39 +02:00
edde746
12b826faff
fix(media): parse responses before caching
2026-07-25 17:38:09 +02:00
edde746
516bd69c19
fix(server): bypass debounce for terminal mutations
2026-07-25 17:38:09 +02:00
edde746
005a56db03
fix(tvos): preserve MPV contract test wiring
2026-07-25 17:38:09 +02:00
edde746
1ae58f676b
fix(windows): recover failed display handoffs
2026-07-25 17:38:09 +02:00
edde746
6710c87892
fix(android): accept denied audio-focus resumes
2026-07-25 17:38:09 +02:00
edde746
96fd47a160
fix(libraries): filter content-type-less Jellyfin roots
2026-07-25 17:38:09 +02:00
edde746
c1cfb9609e
perf(livetv): virtualize guide rendering
2026-07-25 16:47:10 +02:00
edde746
cd6716df47
perf(tv): trim media card focus semantics
2026-07-25 16:47:04 +02:00
edde746
5c221468d6
perf(android): use Skia on 32-bit Android TVs
2026-07-25 16:45:59 +02:00
edde746
77da82b648
fix(ci): make cross-platform checks deterministic
2026-07-25 16:17:25 +02:00
edde746
39ddfd2bd9
fix(website): restore contracts and focus indicators
2026-07-25 16:17:05 +02:00
edde746
0717009ade
fix(server): make room persistence transactional
2026-07-25 16:16:48 +02:00
edde746
f8f366a513
fix(native): harden player teardown and shelf recovery
2026-07-25 16:16:24 +02:00
edde746
4af77f4696
fix(app): restore playback and state lifecycle contracts
2026-07-25 16:16:04 +02:00
edde746
73f4a3e055
fix(tv): focus late Continue Watching on startup
...
close #1602
2026-07-25 10:54:43 +02:00
edde746
0959cd3040
fix(libraries): exclude episodes from mixed roots
...
close #1675
2026-07-25 09:13:00 +02:00
edde746
9a6f48a4cb
fix(android): use Skia on 32-bit TCL TVs
2026-07-25 08:33:06 +02:00
edde746
fb27621c75
perf(tv): cut semantics work during card navigation
2026-07-25 08:13:09 +02:00
edde746
2b3853a882
fix(player): preserve transcoded subtitles at high speed
...
close #1622
2026-07-25 04:21:37 +02:00
edde746
0643787fbe
fix(android): prevent ghost playback after autoplay failures
...
close #1673
2026-07-25 04:12:54 +02:00
edde746
b7d5922b0a
fix(ci): repair Windows native checks
2026-07-25 00:22:23 +02:00
edde746
c7b9eec087
fix(player): preserve subtitles across episode changes
...
close #1635
2026-07-24 21:40:22 +02:00
edde746
db7bc17c49
chore(website): remove tests and update SvelteKit
2026-07-24 20:30:45 +02:00
edde746
d1cec00b51
fix(ci): repair native and Maestro checks
2026-07-24 20:30:45 +02:00
edde746
102ef46d00
feat(jellyfin): lazily page recently added hubs
...
close #1611
2026-07-24 20:29:21 +02:00
edde746
d6b24c3e07
fix(android): prevent Dolby Vision seek crashes
2026-07-24 19:10:38 +02:00
edde746
4cc9a35b2e
fix(android): use OpenGLES on 32-bit TCL TVs
2026-07-24 12:22:58 +02:00
edde746
40833e65ec
fix(ci): align toolchains and isolate platform tests
2026-07-24 10:06:50 +02:00
edde746
6c03094ef1
fix(settings): label image-only cache clearing accurately
2026-07-24 08:09:14 +02:00
edde746
269bb7a322
fix(playback): recover episode navigation without Plex queues
2026-07-24 08:08:10 +02:00
edde746
54273ab09c
fix(downloads): recover from full storage
...
close #1655
2026-07-24 07:48:42 +02:00
ad7ef112fc
feat(i18n): add Hungarian and Traditional Chinese locales
...
Complete and revise every shipped locale against the current English source, preserve locale-specific plurals, and map script-specific Chinese locales through device, Intl, duration, and Plex boundaries.
Co-authored-by: emgeje <mgj@mgj.hu >
Co-authored-by: junyou1998 <junyou1998@gmail.com >
2026-07-24 07:30:43 +02:00
edde746
0c6dab01b3
build(deps): upgrade Flutter package dependencies
2026-07-24 03:56:40 +02:00
edde746
3c2a353d32
build(android): upgrade Gradle and Kotlin toolchain
2026-07-24 03:56:40 +02:00
edde746
54a002f9b7
fix(android): consolidate native media decoders
2026-07-24 03:56:40 +02:00
edde746
fb45ff44f3
fix(android): persist startup and runtime exit diagnostics
2026-07-24 03:56:40 +02:00
edde746
9f2e050797
fix(native): bound cross-platform lifecycle ownership
2026-07-24 03:56:40 +02:00
edde746
09656fa4d3
fix(supply-chain): verify CI and production inputs
...
Pin external actions, images, toolchains, native archives, and tvOS engine artifacts; enforce fail-closed CI checks and keep website privacy disclosures aligned with shipped behavior.
2026-07-24 03:56:40 +02:00
edde746
b41fb4fe75
fix(ui): harden settings focus and semantics
2026-07-24 03:46:50 +02:00
edde746
f8bfecf57d
fix(media): serialize browsing and metadata mutations
2026-07-24 03:46:50 +02:00
edde746
43a8fe020d
fix(relay): secure reconnect and room ownership
2026-07-24 03:46:50 +02:00
edde746
e0bf66eea8
fix(runtime): harden application service boundaries
2026-07-24 03:46:46 +02:00
edde746
658da37b48
build: make toolchain inputs reproducible
2026-07-24 03:40:06 +02:00
edde746
1d1c301f61
test: stabilize deterministic integration coverage
2026-07-24 03:40:06 +02:00
edde746
d98e85614a
fix(settings): match services-page compact row style on desktop
2026-07-20 10:49:44 +02:00
edde746
5fb167898e
fix(tv): play episodes from detail rails
...
close #1608
2026-07-20 10:28:31 +02:00
edde746
0283c3bfff
fix(plex): skip malformed subtitle streams
...
close #1589
2026-07-20 10:28:31 +02:00
edde746
e32fcc2190
feat(explore): add AniList, Simkl, and Plex catalogs
2026-07-20 10:28:31 +02:00
edde746
0707d4d9b1
fix(live-tv): stabilize HLS playback
2026-07-18 20:04:09 +02:00
edde746
46dfc7f992
feat(detail): show episode file sizes
2026-07-18 13:32:40 +02:00
edde746
a1b6a89714
fix(player): load subtitle sidecars with media
...
close #1583
2026-07-17 23:09:07 +02:00
edde746
70cd7e8c67
fix(music): keep now playing state current
...
close #1600
2026-07-17 16:30:10 +02:00
edde746
5b90c4bca0
fix(images): decode cast cards at the square grid-cell budget
...
close #1591
2026-07-17 09:04:01 +02:00
edde746
6df8aba097
fix(nav): preserve HTPC escape behavior
...
Use Flutter's supported desktop application-exit API so the second root Back press closes Plezy on Windows. Preserve fullscreen when video player navigation is enabled while keeping fullscreen-first Escape behavior for normal desktop use.
close #1582
2026-07-16 20:43:10 +02:00
edde746
a244d249bd
fix(detail): stop cropping the hero backdrop on wide windows
...
close #1588
2026-07-16 16:00:30 +02:00
edde746
ac9a5914a2
fix(plex): handle malformed lyrics XML
2026-07-16 14:36:48 +02:00
edde746
b7cd4e5e9c
fix(music): preserve Jellyfin collection posters
2026-07-16 14:36:48 +02:00
edde746
ff602f1456
fix(plex): load local lyrics
...
Closing #1585
2026-07-16 12:56:16 +02:00
edde746
517c3f57ce
fix(music): keep collection and playlist artwork square
2026-07-16 12:37:02 +02:00
edde746
d253450e9d
fix(plex): show all artist releases
...
close #1577
2026-07-15 08:49:06 +02:00
edde746
fa901be328
fix(e2e): run emulator suites through Python
2026-07-15 08:25:55 +02:00
edde746
74cae73844
fix(ci): restore Dart formatting gate
2026-07-15 08:25:42 +02:00
edde746
0bcd00bcb6
ci: harden privileged workflow trust boundaries
2026-07-15 07:57:42 +02:00
edde746
54a4b8e414
refactor(mpv): move common code to shared
2026-07-15 07:57:02 +02:00
edde746
87c0547090
ci: harden pull request workflows
2026-07-15 07:15:34 +02:00
edde746
9471e30585
ci(test): consolidate Maestro workflow setup
2026-07-15 06:58:22 +02:00
edde746
ea4bd21977
fix(tv): refresh retained spotlight metadata
2026-07-15 06:40:59 +02:00
edde746
3168f6327f
fix(tv): make select activation one-shot
2026-07-15 06:40:47 +02:00
edde746
139cf83507
feat(test): add Maestro end-to-end coverage
2026-07-15 06:40:35 +02:00
edde746
ddb7520ce8
fix(jellyfin): promote redirected server URLs
2026-07-14 23:05:57 +02:00
edde746
abf1027b77
feat(plex): migrate video transcoding to HLS
2026-07-14 18:11:04 +02:00
edde746
9d812fa3cc
fix(plex): match legacy agent GUIDs
...
closing #1566
2026-07-14 18:11:04 +02:00
edde746
8c88385977
feat(jellyfin): cycle media backdrops
...
close #1568
2026-07-14 07:24:11 +02:00
edde746
30c978719b
fix(ci): update actions for Node 24
2026-07-14 07:23:16 +02:00
edde746
12eb9b71b6
fix(ci): disable crashing analyzer plugin
2026-07-14 07:23:16 +02:00
edde746
0cb19a4e30
feat(website): adopt expressive material design
2026-07-14 07:19:46 +02:00
edde746
991aee6c90
fix(ci): resolve analyzer and settings test failures
2026-07-14 01:21:38 +02:00
edde746
cbb0a01c5f
fix(release): create untagged build drafts
2026-07-14 00:33:12 +02:00
edde746
d86e820a16
fix(android): trust user-installed CAs
2026-07-14 00:24:54 +02:00
edde746
1bdd76d95a
fix(plex): wait for shared server resource tokens
2026-07-14 00:15:46 +02:00
edde746
0a3e9d9e89
build(apple): bump MPVKit to 1.0.13
2026-07-13 23:37:30 +02:00
edde746
a0013323f2
chore(ui): enforce icon consistency
2026-07-13 23:13:53 +02:00