fix: drop redundant StopBroadcastButton from nest action bar

MicMuteToggle already covers 'stop sending audio while staying on stage'
with sample-accurate resume, and LeaveStageButton covers full teardown.
StopBroadcastButton drew a Mic icon next to MicMuteToggle's Mic icon,
reading visually as two adjacent mic buttons.
This commit is contained in:
Claude
2026-05-01 20:39:11 +00:00
parent 66985020e0
commit e7cb6dae5f
11 changed files with 1 additions and 38 deletions
@@ -84,7 +84,7 @@ import com.vitorpamplona.amethyst.ui.stringRes
* | Connected, on stage, !canBroadcast | `[Leave the Stage]` | * | Connected, on stage, !canBroadcast | `[Leave the Stage]` |
* | Connected, on stage, mic idle | `[Talk] [Leave the Stage]` (+ pill) | * | Connected, on stage, mic idle | `[Talk] [Leave the Stage]` (+ pill) |
* | Connected, on stage, going live | status chip + `[Leave the Stage]` | * | Connected, on stage, going live | status chip + `[Leave the Stage]` |
* | Connected, on stage, broadcasting | `[MicMute] [Stop] [Leave the Stage]` | * | Connected, on stage, broadcasting | `[MicMute] [Leave the Stage]` |
* | Connected, on stage, broadcast failed | `[Retry] [Leave the Stage]` | * | Connected, on stage, broadcast failed | `[Retry] [Leave the Stage]` |
* *
* End cluster: hand-raise (audience + connected only), react, leave room. * End cluster: hand-raise (audience + connected only), react, leave room.
@@ -242,10 +242,6 @@ private fun OnStageControls(
is BroadcastUiState.Broadcasting -> { is BroadcastUiState.Broadcasting -> {
MicMuteToggle(isMuted = broadcast.isMuted, onToggle = viewModel::setMicMuted) MicMuteToggle(isMuted = broadcast.isMuted, onToggle = viewModel::setMicMuted)
// Stop sending audio without leaving the stage — viewer
// can pause the mic and resume later via Talk. Distinct
// from [LeaveStageButton], which also vacates the slot.
StopBroadcastButton(onClick = viewModel::stopBroadcast)
LeaveStageButton(onClick = leaveStage) LeaveStageButton(onClick = leaveStage)
} }
@@ -381,29 +377,6 @@ private fun TalkButton(
} }
} }
/**
* Big error-color 56dp mic button shown while broadcasting. Same
* footprint as [TalkButton] so the on/off swap is impossible to miss.
*/
@Composable
private fun StopBroadcastButton(onClick: () -> Unit) {
FilledIconButton(
onClick = onClick,
modifier = Modifier.size(56.dp),
colors =
IconButtonDefaults.filledIconButtonColors(
containerColor = MaterialTheme.colorScheme.error,
contentColor = MaterialTheme.colorScheme.onError,
),
) {
Icon(
symbol = MaterialSymbols.Mic,
contentDescription = stringRes(R.string.nest_stop_talking),
modifier = Modifier.size(28.dp),
)
}
}
/** /**
* Cheap broadcast-side mute toggle. Keeps the MoQ session open and * Cheap broadcast-side mute toggle. Keeps the MoQ session open and
* just stops sending audio frames; unmute is sample-accurate. * just stops sending audio frames; unmute is sample-accurate.
@@ -484,7 +484,6 @@
<string name="nest_audio_failed">Zvuk selhal: %1$s</string> <string name="nest_audio_failed">Zvuk selhal: %1$s</string>
<string name="nest_audio_unavailable">Zvuk pro tuto místnost není k dispozici</string> <string name="nest_audio_unavailable">Zvuk pro tuto místnost není k dispozici</string>
<string name="nest_talk">Mluvit</string> <string name="nest_talk">Mluvit</string>
<string name="nest_stop_talking">Přestat mluvit</string>
<string name="nest_leave_stage">Opustit pódium</string> <string name="nest_leave_stage">Opustit pódium</string>
<string name="nest_mic_mute">Ztlumit mikrofon</string> <string name="nest_mic_mute">Ztlumit mikrofon</string>
<string name="nest_mic_unmute">Zapnout mikrofon</string> <string name="nest_mic_unmute">Zapnout mikrofon</string>
@@ -489,7 +489,6 @@ anz der Bedingungen ist erforderlich</string>
<string name="nest_audio_failed">Audio fehlgeschlagen: %1$s</string> <string name="nest_audio_failed">Audio fehlgeschlagen: %1$s</string>
<string name="nest_audio_unavailable">Audio ist für diesen Raum nicht verfügbar</string> <string name="nest_audio_unavailable">Audio ist für diesen Raum nicht verfügbar</string>
<string name="nest_talk">Sprechen</string> <string name="nest_talk">Sprechen</string>
<string name="nest_stop_talking">Aufhören zu sprechen</string>
<string name="nest_leave_stage">Bühne verlassen</string> <string name="nest_leave_stage">Bühne verlassen</string>
<string name="nest_mic_mute">Mikrofon stumm</string> <string name="nest_mic_mute">Mikrofon stumm</string>
<string name="nest_mic_unmute">Mikrofon aktivieren</string> <string name="nest_mic_unmute">Mikrofon aktivieren</string>
@@ -486,7 +486,6 @@
<string name="nest_audio_failed">Hanghiba: %1$s</string> <string name="nest_audio_failed">Hanghiba: %1$s</string>
<string name="nest_audio_unavailable">A hang nem érhető el ebben a szobában</string> <string name="nest_audio_unavailable">A hang nem érhető el ebben a szobában</string>
<string name="nest_talk">Beszéd</string> <string name="nest_talk">Beszéd</string>
<string name="nest_stop_talking">Beszéd befejezése</string>
<string name="nest_leave_stage">Színpad elhagyása</string> <string name="nest_leave_stage">Színpad elhagyása</string>
<string name="nest_mic_mute">Mikrofon némítása</string> <string name="nest_mic_mute">Mikrofon némítása</string>
<string name="nest_mic_unmute">Mikrofon némításának megszüntetése</string> <string name="nest_mic_unmute">Mikrofon némításának megszüntetése</string>
@@ -460,7 +460,6 @@
<string name="nest_audio_failed">Audio mislukt: %1$s</string> <string name="nest_audio_failed">Audio mislukt: %1$s</string>
<string name="nest_audio_unavailable">Audio is niet beschikbaar voor deze ruimte</string> <string name="nest_audio_unavailable">Audio is niet beschikbaar voor deze ruimte</string>
<string name="nest_talk">Praten</string> <string name="nest_talk">Praten</string>
<string name="nest_stop_talking">Stoppen met praten</string>
<string name="nest_leave_stage">Podium verlaten</string> <string name="nest_leave_stage">Podium verlaten</string>
<string name="nest_force_mute">Spreker forceren te dempen</string> <string name="nest_force_mute">Spreker forceren te dempen</string>
<string name="nest_kick_action">Kicken</string> <string name="nest_kick_action">Kicken</string>
@@ -483,7 +483,6 @@
<string name="nest_audio_failed">Błąd dźwięku: %1$s</string> <string name="nest_audio_failed">Błąd dźwięku: %1$s</string>
<string name="nest_audio_unavailable">Dźwięk nie jest dostępny dla tego pokoju</string> <string name="nest_audio_unavailable">Dźwięk nie jest dostępny dla tego pokoju</string>
<string name="nest_talk">Mów</string> <string name="nest_talk">Mów</string>
<string name="nest_stop_talking">Przestań mówić</string>
<string name="nest_leave_stage">Zejść ze sceny</string> <string name="nest_leave_stage">Zejść ze sceny</string>
<string name="nest_mic_mute">Wycisz mikrofon</string> <string name="nest_mic_mute">Wycisz mikrofon</string>
<string name="nest_mic_unmute">Włącz mikrofon</string> <string name="nest_mic_unmute">Włącz mikrofon</string>
@@ -484,7 +484,6 @@
<string name="nest_audio_failed">Áudio falhou: %1$s</string> <string name="nest_audio_failed">Áudio falhou: %1$s</string>
<string name="nest_audio_unavailable">O áudio não está disponível para esta sala</string> <string name="nest_audio_unavailable">O áudio não está disponível para esta sala</string>
<string name="nest_talk">Falar</string> <string name="nest_talk">Falar</string>
<string name="nest_stop_talking">Parar de falar</string>
<string name="nest_leave_stage">Sair do palco</string> <string name="nest_leave_stage">Sair do palco</string>
<string name="nest_mic_mute">Silenciar microfone</string> <string name="nest_mic_mute">Silenciar microfone</string>
<string name="nest_mic_unmute">Ativar microfone</string> <string name="nest_mic_unmute">Ativar microfone</string>
@@ -497,7 +497,6 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem</string>
<string name="nest_audio_failed">Napaka pri zvoku: %1$s</string> <string name="nest_audio_failed">Napaka pri zvoku: %1$s</string>
<string name="nest_audio_unavailable">Zvok v tej sobi ni na voljo</string> <string name="nest_audio_unavailable">Zvok v tej sobi ni na voljo</string>
<string name="nest_talk">Govori</string> <string name="nest_talk">Govori</string>
<string name="nest_stop_talking">Prenehaj govoriti</string>
<string name="nest_leave_stage">Zapusti oder</string> <string name="nest_leave_stage">Zapusti oder</string>
<string name="nest_mic_mute">Izklopi mikrofon</string> <string name="nest_mic_mute">Izklopi mikrofon</string>
<string name="nest_mic_unmute">Vklopi mikrofon</string> <string name="nest_mic_unmute">Vklopi mikrofon</string>
@@ -484,7 +484,6 @@
<string name="nest_audio_failed">Ljudet misslyckades: %1$s</string> <string name="nest_audio_failed">Ljudet misslyckades: %1$s</string>
<string name="nest_audio_unavailable">Ljud är inte tillgängligt för det här rummet</string> <string name="nest_audio_unavailable">Ljud är inte tillgängligt för det här rummet</string>
<string name="nest_talk">Tala</string> <string name="nest_talk">Tala</string>
<string name="nest_stop_talking">Sluta tala</string>
<string name="nest_leave_stage">Lämna scenen</string> <string name="nest_leave_stage">Lämna scenen</string>
<string name="nest_mic_mute">Stäng av mikrofon</string> <string name="nest_mic_mute">Stäng av mikrofon</string>
<string name="nest_mic_unmute">Slå på mikrofon</string> <string name="nest_mic_unmute">Slå på mikrofon</string>
@@ -486,7 +486,6 @@
<string name="nest_audio_failed">音频失败: %1$s</string> <string name="nest_audio_failed">音频失败: %1$s</string>
<string name="nest_audio_unavailable">此聊天室没有音频可用</string> <string name="nest_audio_unavailable">此聊天室没有音频可用</string>
<string name="nest_talk">交谈</string> <string name="nest_talk">交谈</string>
<string name="nest_stop_talking">停止交谈</string>
<string name="nest_leave_stage">离开舞台</string> <string name="nest_leave_stage">离开舞台</string>
<string name="nest_mic_mute">麦克风静音</string> <string name="nest_mic_mute">麦克风静音</string>
<string name="nest_mic_unmute">取消麦克风静音</string> <string name="nest_mic_unmute">取消麦克风静音</string>
-1
View File
@@ -516,7 +516,6 @@
<string name="nest_audio_failed">Audio failed: %1$s</string> <string name="nest_audio_failed">Audio failed: %1$s</string>
<string name="nest_audio_unavailable">Audio is not available for this room</string> <string name="nest_audio_unavailable">Audio is not available for this room</string>
<string name="nest_talk">Talk</string> <string name="nest_talk">Talk</string>
<string name="nest_stop_talking">Stop talking</string>
<string name="nest_leave_stage">Leave stage</string> <string name="nest_leave_stage">Leave stage</string>
<string name="nest_mic_mute">Mute mic</string> <string name="nest_mic_mute">Mute mic</string>
<string name="nest_mic_unmute">Unmute mic</string> <string name="nest_mic_unmute">Unmute mic</string>