mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-06 03:14:00 +00:00
Keep Radio playback state consistent after a silent Next
Review follow-ups for HAL-722. A Next or Previous that only selects a station now leaves nothing of the previous stream behind: - Selecting another station without playing stops a paused or failed stream, so the panel, Stop, voice summaries and the audio element agree on "stopped". A fallback the caller armed for the new selection is kept. - A silent UI step arms no broadcaster fallback, and a user Play of the selected station drops one left by a cancelled voice step. Voice steps pass `fallback: true` because voice starts the prepared playback later. - A user step to another station emits a `select` playback control, and the realtime voice handoff treats it like Pause and Stop. - A tuner release onto a station the directory no longer has stops the stream the drag paused, publishing one state with the gesture's origin, so the button reads PLAY and a voice handoff is cancelled. - The transport buttons offer Pause while a stream connects, matching what a click does. - The privacy note names every action that connects to a broadcaster (play, finishing tuning, choosing a station on the globe) in all locales. The Next/Previous layer tests live in src/data/radioNextState.test.mjs.
This commit is contained in:
1 parent
b775bfed70
commit
4dd5a313b3
20 files changed
+523
-71
No files matched your search
@@ -2211,7 +2211,11 @@ export async function controlRadio(
|
||||
if (!radioActionIsCurrent(options)) return cancelled(summarize);
|
||||
const prepared = state.selected
|
||||
? true
|
||||
: radio.cycleStation?.(1, { focus: false, autoplay: false });
|
||||
: radio.cycleStation?.(1, {
|
||||
focus: false,
|
||||
autoplay: false,
|
||||
fallback: true,
|
||||
});
|
||||
return {
|
||||
ok: Boolean(prepared),
|
||||
action: 'control_radio',
|
||||
@@ -2235,6 +2239,7 @@ export async function controlRadio(
|
||||
const selected = radio.cycleStation?.(action === 'next' ? 1 : -1, {
|
||||
focus: false,
|
||||
autoplay: false,
|
||||
fallback: true,
|
||||
});
|
||||
return {
|
||||
ok: Boolean(selected),
|
||||
|
||||
Reference in new issue
Block a user