mirror of
https://github.com/tiennm99/loto-android.git
synced 2026-06-09 06:14:10 +00:00
feat: per-mode voice-master hint copy in settings
- Add mode-specific voice hint messages (player vs master mode). - Update VoiceToggles to show contextual hint based on current mode. - Improve UX clarity in settings sheet. Upstream: a60ea08
This commit is contained in:
@@ -4,6 +4,7 @@ import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
@@ -11,14 +12,16 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.miti99.loto.R
|
||||
import com.miti99.loto.settings.SettingsState
|
||||
|
||||
/**
|
||||
* Three voice-announcement toggle rows.
|
||||
* Voice-announcement toggle rows. Mirrors `SettingsButton.svelte` gating:
|
||||
*
|
||||
* The "đọc số khi Chờ" switch is only visible when [state.voiceEnabledPlayer] is on
|
||||
* (matching web's conditional render at SettingsButton.svelte).
|
||||
* - Master row visible when mode != PLAYER. Hint copy varies by mode
|
||||
* (BOTH includes "+ báo Chờ/Kinh", MASTER-only just "Đọc số đã xổ.").
|
||||
* - Player + waiting-number rows visible when mode != MASTER.
|
||||
*/
|
||||
@Composable
|
||||
internal fun VoiceToggles(
|
||||
@@ -29,22 +32,37 @@ internal fun VoiceToggles(
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Column(modifier = modifier) {
|
||||
SwitchRow(
|
||||
label = stringResource(R.string.voice_enabled_master),
|
||||
checked = state.voiceEnabledMaster,
|
||||
onCheckedChange = onSetVoiceEnabledMaster,
|
||||
)
|
||||
SwitchRow(
|
||||
label = stringResource(R.string.voice_enabled_player),
|
||||
checked = state.voiceEnabledPlayer,
|
||||
onCheckedChange = onSetVoiceEnabledPlayer,
|
||||
)
|
||||
AnimatedVisibility(visible = state.voiceEnabledPlayer) {
|
||||
if (state.mode != SettingsState.Mode.PLAYER) {
|
||||
SwitchRow(
|
||||
label = stringResource(R.string.voice_waiting_number),
|
||||
checked = state.voiceWaitingNumber,
|
||||
onCheckedChange = onSetVoiceWaitingNumber,
|
||||
label = stringResource(R.string.voice_enabled_master),
|
||||
checked = state.voiceEnabledMaster,
|
||||
onCheckedChange = onSetVoiceEnabledMaster,
|
||||
)
|
||||
val hintRes = if (state.mode == SettingsState.Mode.BOTH)
|
||||
R.string.voice_master_hint_both
|
||||
else
|
||||
R.string.voice_master_hint_master_only
|
||||
Text(
|
||||
text = stringResource(hintRes),
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.padding(start = 4.dp, top = 2.dp, bottom = 8.dp),
|
||||
)
|
||||
}
|
||||
|
||||
if (state.mode != SettingsState.Mode.MASTER) {
|
||||
SwitchRow(
|
||||
label = stringResource(R.string.voice_enabled_player),
|
||||
checked = state.voiceEnabledPlayer,
|
||||
onCheckedChange = onSetVoiceEnabledPlayer,
|
||||
)
|
||||
AnimatedVisibility(visible = state.voiceEnabledPlayer) {
|
||||
SwitchRow(
|
||||
label = stringResource(R.string.voice_waiting_number),
|
||||
checked = state.voiceWaitingNumber,
|
||||
onCheckedChange = onSetVoiceWaitingNumber,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,8 @@
|
||||
<string name="voice_enabled_master">Quản trò: đọc số</string>
|
||||
<string name="voice_enabled_player">Người chơi: đọc Chờ / Kinh</string>
|
||||
<string name="voice_waiting_number">Đọc số khi Chờ</string>
|
||||
<string name="voice_master_hint_both">Đọc số đã xổ + báo Chờ/Kinh.</string>
|
||||
<string name="voice_master_hint_master_only">Đọc số đã xổ.</string>
|
||||
<string name="voice_picker_label">Chọn giọng</string>
|
||||
<string name="settings_empty_cell_color">Màu ô trống</string>
|
||||
<string name="empty_cell_custom">Tùy chỉnh</string>
|
||||
|
||||
Reference in New Issue
Block a user