edde746
66b80a33ba
fix(libraries): preserve Jellyfin alpha focus
...
close #1367
2026-06-17 20:55:26 +02:00
edde746
84b9eac09b
fix(ci): restore sanity checks
2026-06-16 22:43:56 +02:00
edde746
4cd289b4b8
fix(profiles): forget removed Jellyfin connections
...
close #1355
2026-06-16 20:08:47 +02:00
edde746
d49bd20fa0
fix(libraries): restore top-row focus escape
...
close #1354
2026-06-16 16:03:18 +02:00
edde746
618251b8eb
fix(player): attach external subtitles during open
2026-06-15 17:21:08 +02:00
edde746
1b29cb3ef7
fix(player): apply stored passthrough setting
2026-06-15 13:28:23 +02:00
edde746
8bf5dbb379
fix(player): resume mpv startup frame after subtitles
2026-06-15 12:06:04 +02:00
edde746
5fc599439e
fix(player): wire playback streams before open
2026-06-15 12:05:48 +02:00
edde746
27723e6f29
fix(video): sync first-frame background state
2026-06-15 12:05:29 +02:00
edde746
7195702242
fix(player): repair Plex transcode seeking
...
close #1341
2026-06-14 23:39:05 +02:00
edde746
01a5d11ef5
fix(jellyfin): use season episode endpoint
2026-06-14 18:34:12 +02:00
edde746
d6487e24c9
fix(tv): keep sidebar transparent
2026-06-14 14:53:56 +02:00
edde746
e7809b3160
fix(player): harden pinch zoom activation
2026-06-14 11:08:14 +02:00
edde746
edd0618e64
fix: harden playback and discover state
2026-06-14 09:44:04 +02:00
edde746
849e62df7e
fix(jellyfin): honor continue watching action
...
close #1334
2026-06-14 07:25:40 +02:00
edde746
349b5b0513
fix(tv): stop playback behind menu
2026-06-14 06:27:00 +02:00
edde746
656cf1158b
fix(libraries): restore tvOS empty tab focus
...
close #1330
2026-06-14 00:05:44 +02:00
edde746
f3cb508649
fix(player): wait for mpv subtitles after load
...
close #1331
2026-06-13 23:52:19 +02:00
edde746
9ff3099a9d
fix(player): update MPVKit and stream buffering
2026-06-13 20:51:14 +02:00
edde746
8f862d1ca0
fix(jellyfin): sort series episodes
...
close #1329
2026-06-13 17:12:48 +02:00
edde746
b56608f94f
fix(media): show source rating badges on TV
...
close #1327
2026-06-13 15:58:36 +02:00
edde746
2876e1bf78
fix(media): catch menu client and refresh failures
2026-06-13 13:25:48 +02:00
edde746
ebd850b0d5
fix(profiles): guard pin dialog route pops
2026-06-13 13:25:41 +02:00
edde746
3c43874342
fix(tvos): update mpvkit audio passthrough
2026-06-13 10:24:15 +02:00
edde746
4f422f1485
fix(plex): persist transcode audio stream switches
...
close #1326
2026-06-13 10:15:08 +02:00
edde746
85d9b6ebab
fix(tvos): hide unsupported playback options
2026-06-13 10:13:02 +02:00
edde746
90662e2173
fix(player): scale mpv stream ring buffer for poorly interleaved mp4/mov
2026-06-12 22:21:17 +02:00
edde746
24980aff95
feat(subs): render resolution setting for the avfoundation VO
2026-06-12 21:05:28 +02:00
edde746
0de856e929
fix(settings): refuse overlapping runAsync at runtime
2026-06-12 17:12:03 +02:00
edde746
a6d82b4637
fix(livetv): stop abandoned sessions when a tune is superseded or unmounts
2026-06-12 17:11:58 +02:00
edde746
dcfe0f8308
refactor(player): live playback drives LiveTvPlaybackSession
2026-06-12 16:15:20 +02:00
edde746
f671f367ea
refactor(discover): DiscoverProvider owns hubs and continue-watching
2026-06-12 15:53:26 +02:00
edde746
e28e2b9371
refactor(media): folder browsing via MediaServerClient interface
2026-06-12 14:33:38 +02:00
edde746
bb92b6083b
refactor(player): clarify requested vs session-effective media source id
2026-06-12 14:21:12 +02:00
edde746
c2fe142293
refactor(watch): WatchActions owns mark-watched orchestration and events
2026-06-12 14:09:21 +02:00
edde746
431b0f9b0c
refactor(ui): shared watched indicator overlay
2026-06-12 13:56:47 +02:00
edde746
18e47d2327
refactor(ui): share android keyboard-mode system-back guard
2026-06-12 13:48:06 +02:00
edde746
b2e5e02204
refactor(library): reuse grid column formula in fetch-size estimate
2026-06-12 13:48:06 +02:00
edde746
892dfee381
fix(tv): keyboard no longer opens over jellyfin quick connect screen
...
Auto-starting quick connect from inside the probe's runAsync let the
probe's finally clear busy mid-initiate; the re-enabled form then took
focus fallback on the URL field, auto-opening the TV keyboard. Sequence
the two busy scopes and debug-assert against overlapping runAsync.
2026-06-12 13:35:55 +02:00
edde746
bd0a0c5d6b
feat(android): loudness normalization for exoplayer via audiofx
...
close #1289
2026-06-12 12:38:57 +02:00
edde746
71b05fd4b2
fix(ui): unwatched count badge grows as pill, caps at 999+
...
close #1310
2026-06-12 09:11:56 +02:00
edde746
587609d7f6
fix(tv): hug poster with focus border and add focus glow toggle
...
close #1278
2026-06-12 08:50:29 +02:00
edde746
cceba28d0a
fix(i18n): request localized Plex labels
...
close #1311
2026-06-12 07:59:35 +02:00
edde746
03c623e8c7
perf(grids): rebuild media grids on width change, not every scroll tick
2026-06-12 07:18:34 +02:00
edde746
2b34f4a9d7
perf(tv): reduced visual-effects tier for low-end devices
2026-06-12 06:30:38 +02:00
edde746
133db721a2
fix(livetv): auto-catch-up stale guide window to now
...
close #1297
2026-06-12 04:13:59 +02:00
edde746
62abd3c30a
feat(jellyfin): simpler, code-first Quick Connect screen
2026-06-12 03:16:58 +02:00
edde746
d816d82a38
fix(folders): row context menus, dpad left to sidebar, faster Jellyfin listings
2026-06-12 02:00:42 +02:00
edde746
3599b0b0e1
fix(startup): no-servers flash on fresh login + faster connect splash
...
- start binder before navigating from auth, mark isBinding synchronously
- overlap plex.tv resource refresh with optimistic cached-metadata connect,
reconcile tokens/membership in background once it lands
- cached endpoint probe gets a head start on the race instead of serially
blocking it
- defer phase-1 HTTPS upgrade off the splash critical path
- per-server connect progress stream for incremental splash checkmarks
- startup timing instrumentation (bind/fetch/race/connect elapsedMs)
2026-06-12 01:46:43 +02:00
edde746
a5c7d5b52a
refactor(watch-together): host-authoritative declarative sync protocol
...
Replaces the imperative play/pause/seek/positionSync message soup with a
single host-authored PlaybackState (seq-ordered, anchor-extrapolated,
phase machine: loading/waitingForPeers/paused/playing) that doubles as
the heartbeat, plus guest status reports and host-applied control
requests. Fixes the guest seek-back loop while the host loads (readiness
was keyed on a pre-load !buffering snapshot and heartbeats broadcast
frozen positions), adds real group buffering coordination (stall grace,
scheduled simultaneous resumes, 15s safety timeout), rate-nudge drift
correction with passthrough-aware seek fallback, session-scoped message
handling (no lost messages during episode-switch detach gaps), and an
expected-state ledger replacing the racy remote-action flag.
2026-06-11 09:42:38 +02:00