From 5a229d6c57900947a97797da0775618dfbbfafb2 Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Fri, 3 Mar 2023 15:03:52 +0100 Subject: [PATCH] [#29] Disable swap button on invalid score. closed [#29] --- .../zobrist/tichucounter/ui/counter/CounterView.kt | 2 +- .../tichucounter/ui/counter/CounterViewModel.kt | 8 ++++---- .../tichucounter/ui/counter/KeyboardView.kt | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt index a4cd96c..a9b0497 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt @@ -103,7 +103,7 @@ internal class PreviewViewModel : ICounterViewModel { override var teamNameB: String = "Team B" override var currentScoreA: String = "" override var currentScoreB: String = "45" - override var enableSubmit: Boolean = false + override var isValidRound: Boolean = false override var isAFocused: Boolean = false override var isBFocused: Boolean = false override var requestFocusA: FocusRequester = FocusRequester() diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterViewModel.kt index 6f58c27..81bed74 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterViewModel.kt @@ -23,7 +23,7 @@ interface IKeyBoardViewModel { val currentScoreA: String val currentScoreB: String - val enableSubmit: Boolean + val isValidRound: Boolean val isAFocused: Boolean val isBFocused: Boolean val requestFocusA: FocusRequester @@ -87,7 +87,7 @@ class CounterViewModel @Inject constructor( override var currentScoreB by mutableStateOf("") private set - override var enableSubmit by mutableStateOf(false) + override var isValidRound by mutableStateOf(false) private set override var isAFocused by mutableStateOf(false) @@ -194,7 +194,7 @@ class CounterViewModel @Inject constructor( } override fun updateSubmitButton() { - enableSubmit = isValidTichuRound() + isValidRound = isValidTichuRound() } override fun submitClicked() { @@ -203,7 +203,7 @@ class CounterViewModel @Inject constructor( } currentScoreA = "" currentScoreB = "" - enableSubmit = false + isValidRound = false } override fun digitClicked(digit: String) { diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt index 2716e99..a88778c 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt @@ -32,7 +32,7 @@ fun KeyBoardView(viewModel: IKeyBoardViewModel) { viewModel.currentScoreB, viewModel.requestFocusA, viewModel.requestFocusB, - viewModel.enableSubmit, + viewModel.isValidRound, viewModel.isAFocused, viewModel.isBFocused, { viewModel.updateFocusStateA(it) }, @@ -53,7 +53,7 @@ fun KeyboardView( scoreB: String, requestFocusA: FocusRequester, requestFocusB: FocusRequester, - enableSubmit: Boolean, + isValidScore: Boolean, focusStateA: Boolean, focusStateB: Boolean, updateFocusStateA: (Boolean) -> Unit, @@ -85,7 +85,7 @@ fun KeyboardView( shape = MaterialTheme.shapes.extraSmall ) { Column { - IconButton(onClick = onSwapClicked) { + IconButton(onClick = onSwapClicked, enabled = isValidScore) { Icon(Icons.Outlined.SwapHoriz, null) } } @@ -197,7 +197,7 @@ fun KeyboardView( } } Column(Modifier.weight(1f)) { - KeyboardIconButton(Icons.Outlined.Check, enableSubmit) { + KeyboardIconButton(Icons.Outlined.Check, isValidScore) { submitClicked() } } @@ -323,11 +323,11 @@ fun KeyboardViewPreview() { AppTheme { Surface { KeyboardView( - "1", - "3511", + "10", + "190", FocusRequester(), FocusRequester(), - enableSubmit = false, + isValidScore = false, focusStateA = true, focusStateB = false, updateFocusStateA = {},