edde746
4728564e0c
refactor(back): host-owned system back in main_screen
...
Both main_screen hosts (side-nav + bottom-nav) drop their PopScopes and
pass canPop:false + onSystemBack to OverlaySheetHost, so a system back
with a sheet open closes the sheet instead of running tab-nav/exit. Key
(dpad) back path unchanged; onSystemBack mirrors it for a pure popRoute.
2026-06-07 10:05:57 +02:00
edde746
489bf914af
refactor(back): host-owned sheet back in hub + media detail
...
hub_detail and media_detail (TV + non-TV) drop their hand-rolled PopScopes
and pass canPop/onSystemBack to OverlaySheetHost. Keeps appbar-focus-first
and Android-keyboard block behavior; fixes system-back-with-sheet-open
leaking to a screen pop. iOS swipe-back preserved.
2026-06-07 09:20:02 +02:00
edde746
248b5fd91a
refactor(back): adopt host-owned sheet back in watch-together + player
...
watch_together, video_player, mobile_remote and live_tv_show_schedule now
pass canPop/onSystemBack to OverlaySheetHost instead of hand-rolling a
PopScope. Restores the iOS swipe-back on watch_together and centralizes
the sheet-close-on-back logic.
2026-06-07 09:13:49 +02:00
edde746
bbf7b1f9da
feat(overlay-sheet): opt-in PopScope so the host owns system back
...
Adds nullable canPop + onSystemBack to OverlaySheetHost. When canPop is
set, the host installs its own PopScope that closes an open sheet on a
system/route back instead of popping the screen; null keeps today's
behavior. Lets screens drop their hand-rolled sheet-back PopScopes.
2026-06-07 09:06:29 +02:00
edde746
cda4c1e78a
fix(watch-together): enable dpad long-press to open recent room actions
...
close #1259
2026-06-07 08:51:02 +02:00
edde746
01e5814943
fix(video): consolidate auto-skip cancellation
2026-06-07 06:13:14 +02:00
edde746
1ef4032666
feat: add startup section setting
...
close #1240
2026-06-06 13:08:02 +02:00
edde746
4c4b18e2cd
fix(i18n): localize hardcoded UI strings
...
close #1257
2026-06-06 11:45:34 +02:00
edde746
f74314bbf0
fix(livetv): debounce rapid time-shift skips to stop overshoot
2026-06-06 10:48:51 +02:00
edde746
32421e4c84
fix(tv): reach app bar actions via up from tabs
...
close #1202
2026-06-06 08:51:08 +02:00
edde746
d90cc61541
fix(tv): symmetric full-card focus glow via overlay
...
close #1231
2026-06-06 05:09:07 +02:00
edde746
0fd0506551
feat(media): lazily page detail episodes
...
close #1245
2026-06-05 19:26:02 +02:00
edde746
de3219abb9
fix: align bottom sheet back header
2026-06-05 06:30:26 +02:00
edde746
8201d8dcda
feat(libraries): add mobile browse options sheet
2026-06-04 20:41:34 +02:00
edde746
aed420525c
feat(nav): move mobile settings to home menu
2026-06-04 16:41:02 +02:00
edde746
75b1c86306
feat(ui): add m3 app menus
2026-06-04 16:22:31 +02:00
edde746
43012da2b8
feat(tvos): add top shelf support
2026-06-04 15:38:12 +02:00
edde746
145881318e
fix: harden server-scoped state
2026-06-04 13:47:06 +02:00
edde746
79c06b82d3
fix(jellyfin): align default track selection
2026-06-04 10:35:14 +02:00
edde746
e5bbdc06f9
feat(jellyfin): show media quality labels
2026-06-04 09:56:10 +02:00
edde746
0e7ff609b6
feat(media): show video and audio quality labels
...
close #1115
2026-06-04 08:20:12 +02:00
edde746
f3e108e867
fix(tvos): suppress duplicate select playback
2026-06-03 17:31:15 +02:00
edde746
92bfae322e
fix(tvos): handle play pause remote
...
close #1230
2026-06-03 14:19:23 +02:00
edde746
08491511e9
fix(video): prevent play next EOF loop
...
close #1228
2026-06-02 15:52:14 +02:00
edde746
24b5080c38
fix(video): stabilize player chrome overlays
2026-06-02 14:20:24 +02:00
edde746
985c279b1f
fix(exoplayer): correct transcode seek position double-count
2026-06-02 06:23:08 +02:00
edde746
cb2e56442d
fix(subtitles): show search without subtitle tracks
...
close #1219
2026-06-01 19:08:17 +02:00
edde746
a425798bae
fix(video): iOS video zoom
2026-06-01 15:21:41 +02:00
edde746
1020188883
fix(video): restore stretch fit startup
2026-06-01 12:40:59 +02:00
edde746
caf192fd78
fix(jellyfin): defer initial URL keyboard
...
close #1217
2026-06-01 11:49:21 +02:00
edde746
74b8dc4561
refactor: type server identifiers
2026-06-01 11:06:03 +02:00
edde746
7b59dac26b
fix: stabilize detail action focus
...
close #1218
2026-06-01 08:34:38 +02:00
edde746
09f5121732
feat(metadata): add Jellyfin edit support
2026-06-01 08:34:38 +02:00
edde746
8f9d20a2e4
feat(jellyfin): add extras support
2026-06-01 08:34:38 +02:00
edde746
273f129b68
fix(i18n): remove unsupported newline guidance
2026-06-01 08:34:38 +02:00
edde746
4ffa3d30f6
fix(player): preserve shader toggle preset
...
close #1208
2026-05-31 21:25:46 +02:00
edde746
d5c8778074
fix: harden reconnect and playback regressions
2026-05-31 20:33:38 +02:00
edde746
c6c76d6828
fix(dialogs): own text input resources
2026-05-31 15:34:00 +02:00
edde746
9cfc6c0f4a
fix(tv): stabilize osk dismissal
2026-05-31 15:22:13 +02:00
edde746
2eae450aa0
fix(jellyfin): preserve add screen dpad focus
2026-05-31 15:00:35 +02:00
edde746
1b5334e72f
fix(jellyfin): harden local discovery flow
2026-05-31 14:33:31 +02:00
edde746
e3db54940d
feat(jellyfin): add local server discovery
...
close #1188
2026-05-31 10:51:08 +02:00
edde746
6438b444bf
fix(player): clarify Dolby Vision playback logging
2026-05-31 06:56:18 +02:00
edde746
8413e1e5a7
fix(player): reduce sync offset dpad step
2026-05-31 06:38:25 +02:00
edde746
5671f6e5d1
fix(plex): send playback session stream header
2026-05-31 06:30:51 +02:00
edde746
a4a0475fdb
fix(player): let macOS shortcuts pass through
...
close #1206
2026-05-31 03:03:52 +02:00
edde746
9a740b91c1
fix(plex): select available playback version
2026-05-31 02:21:15 +02:00
edde746
63ab80fa82
fix(player): switch refresh rate before ExoPlayer open
2026-05-31 00:28:54 +02:00
edde746
0bb085c70c
feat(macos): support start in fullscreen setting
...
close #1200
2026-05-30 23:58:38 +02:00
edde746
9825ce3c7c
fix: select first playable Plex Part instead of always Part[0]
...
close #1201
2026-05-30 21:37:01 +02:00