From 328c2401839f3ee1ccc506175690996eeaacb158 Mon Sep 17 00:00:00 2001 From: Nikola Petrov Date: Tue, 2 Dec 2025 11:20:55 +0100 Subject: [PATCH] update SettingsScreen.kt --- .../com/petrovv/gogameclock/SettingsScreen.kt | 75 +++++++++++++------ 1 file changed, 53 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/petrovv/gogameclock/SettingsScreen.kt b/app/src/main/java/com/petrovv/gogameclock/SettingsScreen.kt index b42468b..3854d80 100644 --- a/app/src/main/java/com/petrovv/gogameclock/SettingsScreen.kt +++ b/app/src/main/java/com/petrovv/gogameclock/SettingsScreen.kt @@ -35,9 +35,12 @@ fun SettingsScreen( modifier: Modifier = Modifier, onTimingChange: (IClock, IClock) -> Unit ) { - var t1 by remember { mutableStateOf("1200") } - var t2 by remember { mutableStateOf("60") } - var t3 by remember { mutableStateOf("25") } + var mainT by remember { mutableStateOf("20") } + var byoM by remember { mutableStateOf("1") } + var byoSe by remember { mutableStateOf("0") } + + var byoSt by remember { mutableStateOf("25") } + val timingOptions = remember { TimingOption.entries } var selectedTiming by remember { mutableStateOf(TimingOption.Absolute) } @@ -51,9 +54,9 @@ fun SettingsScreen( Spacer(modifier = Modifier.height(16.dp)) TextField( - value = t1, - onValueChange = { t1 = it }, - label = { Text("Main time (s)") }, + value = mainT, + onValueChange = { mainT = it }, + label = { Text("Main time (m)") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), ) @@ -88,40 +91,64 @@ fun SettingsScreen( when (selectedTiming) { TimingOption.Absolute -> {} TimingOption.Fischer -> { - text1 = "Increment (s)" + text1 = "Increment" show1 = true + byoM = "0" + byoSe = "10" } TimingOption.Canadian -> { - text1 = "byo-yomi time (s)" + text1 = "byo-yomi time" text2 = "byo-yomi stones" show1 = true show2 = true + byoM = "10" + byoSe = "0" + byoSt = "25" } TimingOption.Japan -> { - text1 = "byo-yomi time (s)" + text1 = "byo-yomi time" text2 = "byo-yomi periods" show1 = true show2 = true + byoM = "1" + byoSe = "0" + byoSt = "3" } } if (show1) { Spacer(modifier = Modifier.height(8.dp)) - TextField( - value = t2, - onValueChange = { t2 = it }, - label = { Text(text1) }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) - ) + + Text(text = text1) + + Row( + modifier = Modifier.padding(horizontal = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + TextField( + value = byoM, + onValueChange = { byoM = it }, + label = { Text("min") }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + modifier = Modifier.weight(1f) + ) + Text(":") + TextField( + value = byoSe, + onValueChange = { byoSe = it }, + label = { Text("sec") }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + modifier = Modifier.weight(1f) + ) + } } - - if (show2) { Spacer(modifier = Modifier.height(8.dp)) TextField( - value = t3, - onValueChange = { t3 = it }, + value = byoSt, + onValueChange = { byoSt = it }, label = { Text(text2) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) ) @@ -130,9 +157,13 @@ fun SettingsScreen( Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { - val v1 = t1.toLongOrNull() ?: 25 - val v2 = t2.toLongOrNull() ?: 25 - val v3 = t3.toLongOrNull() ?: 25 + val v1 = (mainT.toLongOrNull() ?: 25) * 60 + + val t1 = byoM.toLongOrNull() ?: 0 + val t2 = byoSe.toLongOrNull() ?: 0 + val v2 = (t1 * 60) + t2 + + val v3 = byoSt.toLongOrNull() ?: 0 when (selectedTiming) { TimingOption.Absolute -> onTimingChange(AbsoluteTiming(v1), AbsoluteTiming(v1))