From fa1ec777cd7642d70c568700aac39830404352e3 Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Sun, 26 Feb 2023 20:21:31 +0400 Subject: [PATCH] Keyboard buttons refactor + Fixed vibrations + Fixed fractional button icon --- .../unitto/core/ui/common/KeyboardButton.kt | 33 ++-- .../feature/calculator/CalculatorScreen.kt | 3 +- .../feature/calculator/CalculatorUIState.kt | 3 +- .../feature/calculator/CalculatorViewModel.kt | 5 +- .../components/CalculatorKeyboard.kt | 153 ++++++++++-------- .../feature/converter/components/Keyboard.kt | 83 +++++----- .../feature/epoch/component/EpochKeyboard.kt | 28 ++-- 7 files changed, 154 insertions(+), 154 deletions(-) diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/KeyboardButton.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/KeyboardButton.kt index 5d6c6aba..acbf9a08 100644 --- a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/KeyboardButton.kt +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/KeyboardButton.kt @@ -49,7 +49,8 @@ fun BasicKeyboardButton( containerColor: Color, icon: ImageVector, iconColor: Color, - allowVibration: Boolean + allowVibration: Boolean, + contentPadding: PaddingValues = PaddingValues(24.dp, 8.dp) ) { val view = LocalView.current val interactionSource = remember { MutableInteractionSource() } @@ -65,7 +66,7 @@ fun BasicKeyboardButton( onLongClick = onLongClick, shape = RoundedCornerShape(cornerRadius), containerColor = containerColor, - contentPadding = PaddingValues(24.dp, 8.dp), + contentPadding = contentPadding, interactionSource = interactionSource ) { Icon(icon, null, modifier = Modifier.fillMaxHeight(), tint = iconColor) @@ -80,9 +81,9 @@ fun BasicKeyboardButton( fun KeyboardButtonLight( modifier: Modifier, icon: ImageVector, - onClick: () -> Unit, + allowVibration: Boolean, onLongClick: (() -> Unit)? = null, - allowVibration: Boolean = false + onClick: () -> Unit, ) { BasicKeyboardButton( modifier = modifier, @@ -99,9 +100,9 @@ fun KeyboardButtonLight( fun KeyboardButtonFilled( modifier: Modifier, icon: ImageVector, - onClick: () -> Unit, + allowVibration: Boolean, onLongClick: (() -> Unit)? = null, - allowVibration: Boolean = false + onClick: () -> Unit, ) { BasicKeyboardButton( modifier = modifier, @@ -118,21 +119,21 @@ fun KeyboardButtonFilled( fun KeyboardButtonAdditional( modifier: Modifier, icon: ImageVector, + allowVibration: Boolean, + onLongClick: (() -> Unit)? = null, onClick: () -> Unit ) { - UnittoButton( + + BasicKeyboardButton( modifier = modifier .minimumInteractiveComponentSize() .heightIn(max = 48.dp), onClick = onClick, containerColor = Color.Transparent, - contentPadding = PaddingValues(12.dp, 2.dp) - ) { - Icon( - imageVector = icon, - contentDescription = null, - modifier = Modifier.fillMaxHeight(), - tint = MaterialTheme.colorScheme.onSurfaceVariant - ) - } + icon = icon, + iconColor = MaterialTheme.colorScheme.onSurfaceVariant, + allowVibration = allowVibration, + contentPadding = PaddingValues(12.dp, 2.dp), + onLongClick = onLongClick + ) } diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt index 773cb58b..15ad87f0 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt @@ -264,11 +264,12 @@ private fun CalculatorScreen( numPad = { CalculatorKeyboard( modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp), + angleMode = uiState.angleMode, + allowVibration = uiState.allowVibration, addSymbol = addSymbol, clearSymbols = clearSymbols, deleteSymbol = deleteSymbol, toggleAngleMode = toggleAngleMode, - angleMode = uiState.angleMode, evaluate = evaluate ) } diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorUIState.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorUIState.kt index add3d94c..0db225fc 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorUIState.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorUIState.kt @@ -25,5 +25,6 @@ internal data class CalculatorUIState( val input: TextFieldValue = TextFieldValue(), val output: String = "", val angleMode: AngleMode = AngleMode.RAD, - val history: List = emptyList() + val history: List = emptyList(), + val allowVibration: Boolean = false ) diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorViewModel.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorViewModel.kt index 9656940b..b612ae7c 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorViewModel.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorViewModel.kt @@ -66,12 +66,13 @@ internal class CalculatorViewModel @Inject constructor( val uiState = combine( textFieldController.input, _output, _angleMode, _history, _userPrefs - ) { input, output, angleMode, history, _ -> + ) { input, output, angleMode, history, userPrefs -> return@combine CalculatorUIState( input = input, output = output, angleMode = angleMode, - history = history + history = history, + allowVibration = userPrefs.enableVibrations ) }.stateIn( viewModelScope, SharingStarted.WhileSubscribed(5000L), CalculatorUIState() diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/components/CalculatorKeyboard.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/components/CalculatorKeyboard.kt index 1297334b..114278b6 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/components/CalculatorKeyboard.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/components/CalculatorKeyboard.kt @@ -75,10 +75,12 @@ import com.sadellie.unitto.core.base.KEY_RIGHT_BRACKET import com.sadellie.unitto.core.base.KEY_SIN import com.sadellie.unitto.core.base.KEY_SQRT import com.sadellie.unitto.core.base.KEY_TAN +import com.sadellie.unitto.core.ui.Formatter import com.sadellie.unitto.core.ui.common.KeyboardButtonAdditional import com.sadellie.unitto.core.ui.common.KeyboardButtonFilled import com.sadellie.unitto.core.ui.common.KeyboardButtonLight import com.sadellie.unitto.core.ui.common.key.UnittoIcons +import com.sadellie.unitto.core.ui.common.key.unittoicons.Comma import com.sadellie.unitto.core.ui.common.key.unittoicons.Cos import com.sadellie.unitto.core.ui.common.key.unittoicons.Deg import com.sadellie.unitto.core.ui.common.key.unittoicons.Delete @@ -117,18 +119,20 @@ import com.sadellie.unitto.feature.calculator.AngleMode @Composable internal fun CalculatorKeyboard( modifier: Modifier, + angleMode: AngleMode, + allowVibration: Boolean, addSymbol: (String) -> Unit, clearSymbols: () -> Unit, deleteSymbol: () -> Unit, toggleAngleMode: () -> Unit, - angleMode: AngleMode, evaluate: () -> Unit ) { if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_PORTRAIT) { PortraitKeyboard( modifier = modifier, - addSymbol = addSymbol, angleMode = angleMode, + allowVibration = allowVibration, + addSymbol = addSymbol, toggleAngleMode = toggleAngleMode, deleteSymbol = deleteSymbol, clearSymbols = clearSymbols, @@ -137,8 +141,9 @@ internal fun CalculatorKeyboard( } else { LandscapeKeyboard( modifier = modifier, - addSymbol = addSymbol, angleMode = angleMode, + allowVibration = allowVibration, + addSymbol = addSymbol, toggleAngleMode = toggleAngleMode, deleteSymbol = deleteSymbol, clearSymbols = clearSymbols, @@ -150,13 +155,15 @@ internal fun CalculatorKeyboard( @Composable private fun PortraitKeyboard( modifier: Modifier, - addSymbol: (String) -> Unit, angleMode: AngleMode, + allowVibration: Boolean, + addSymbol: (String) -> Unit, toggleAngleMode: () -> Unit, deleteSymbol: () -> Unit, clearSymbols: () -> Unit, evaluate: () -> Unit ) { + val fractionalIcon = remember { if (Formatter.fractional == KEY_DOT) UnittoIcons.Dot else UnittoIcons.Comma } var showAdditional: Boolean by remember { mutableStateOf(false) } val expandRotation: Float by animateFloatAsState( targetValue = if (showAdditional) 0f else 180f, @@ -183,24 +190,24 @@ private fun PortraitKeyboard( // Additional buttons Column(modifier = weightModifier) { Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) { - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.SquareRoot) { addSymbol(KEY_SQRT) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Pi) { addSymbol(KEY_PI) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Exponent) { addSymbol(KEY_EXPONENT) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Factorial) { addSymbol(KEY_FACTORIAL) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.SquareRoot, allowVibration) { addSymbol(KEY_SQRT) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Pi, allowVibration) { addSymbol(KEY_PI) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Exponent, allowVibration) { addSymbol(KEY_EXPONENT) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Factorial, allowVibration) { addSymbol(KEY_FACTORIAL) } } AnimatedVisibility(visible = showAdditional) { Column { Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) { - KeyboardButtonAdditional(additionalButtonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad) { toggleAngleMode() } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Sin) { addSymbol(KEY_SIN) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Cos) { addSymbol(KEY_COS) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Tan) { addSymbol(KEY_TAN) } + KeyboardButtonAdditional(additionalButtonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad, allowVibration) { toggleAngleMode() } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Sin, allowVibration) { addSymbol(KEY_SIN) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Cos, allowVibration) { addSymbol(KEY_COS) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Tan, allowVibration) { addSymbol(KEY_TAN) } } Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) { - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Modulo) { addSymbol(KEY_MODULO) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.E) { addSymbol(KEY_E_SMALL) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Ln) { addSymbol(KEY_LN) } - KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Log) { addSymbol(KEY_LOG) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Modulo, allowVibration) { addSymbol(KEY_MODULO) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.E, allowVibration) { addSymbol(KEY_E_SMALL) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Ln, allowVibration) { addSymbol(KEY_LN) } + KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Log, allowVibration) { addSymbol(KEY_LOG) } } } } @@ -215,35 +222,35 @@ private fun PortraitKeyboard( } Row(weightModifier) { - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.LeftBracket, { addSymbol(KEY_LEFT_BRACKET) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.RightBracket, { addSymbol(KEY_RIGHT_BRACKET) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Percent, { addSymbol(KEY_PERCENT) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Divide, { addSymbol(KEY_DIVIDE_DISPLAY) }) + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.LeftBracket, allowVibration) { addSymbol(KEY_LEFT_BRACKET) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.RightBracket, allowVibration) { addSymbol(KEY_RIGHT_BRACKET) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Percent, allowVibration) { addSymbol(KEY_PERCENT) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Divide, allowVibration) { addSymbol(KEY_DIVIDE_DISPLAY) } } Row(weightModifier) { - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key7, { addSymbol(KEY_7) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key8, { addSymbol(KEY_8) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key9, { addSymbol(KEY_9) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Multiply, { addSymbol(KEY_MULTIPLY_DISPLAY) }) + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key7, allowVibration) { addSymbol(KEY_7) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key8, allowVibration) { addSymbol(KEY_8) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key9, allowVibration) { addSymbol(KEY_9) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Multiply, allowVibration) { addSymbol(KEY_MULTIPLY_DISPLAY) } } Row(weightModifier) { - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key4, { addSymbol(KEY_4) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key5, { addSymbol(KEY_5) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key6, { addSymbol(KEY_6) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Minus, { addSymbol(KEY_MINUS_DISPLAY) }) + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key4, allowVibration) { addSymbol(KEY_4) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key5, allowVibration) { addSymbol(KEY_5) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key6, allowVibration) { addSymbol(KEY_6) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Minus, allowVibration) { addSymbol(KEY_MINUS_DISPLAY) } } Row(weightModifier) { - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key1, { addSymbol(KEY_1) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key2, { addSymbol(KEY_2) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key3, { addSymbol(KEY_3) }) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Plus, { addSymbol(KEY_PLUS) }) + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key1, allowVibration) { addSymbol(KEY_1) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key2, allowVibration) { addSymbol(KEY_2) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key3, allowVibration) { addSymbol(KEY_3) } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Plus, allowVibration) { addSymbol(KEY_PLUS) } } Row(weightModifier) { - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key0, { addSymbol(KEY_0) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Dot, { addSymbol(KEY_DOT) }) - KeyboardButtonLight(mainButtonModifier, UnittoIcons.Delete, { deleteSymbol() }, onLongClick = clearSymbols) - KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Equal, { evaluate() }) + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key0, allowVibration) { addSymbol(KEY_0) } + KeyboardButtonLight(mainButtonModifier, fractionalIcon, allowVibration) { addSymbol(KEY_DOT) } + KeyboardButtonLight(mainButtonModifier, UnittoIcons.Delete, allowVibration, clearSymbols) { deleteSymbol() } + KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Equal, allowVibration) { evaluate() } } } } @@ -251,58 +258,61 @@ private fun PortraitKeyboard( @Composable private fun LandscapeKeyboard( modifier: Modifier, - addSymbol: (String) -> Unit, angleMode: AngleMode, + allowVibration: Boolean, + addSymbol: (String) -> Unit, toggleAngleMode: () -> Unit, deleteSymbol: () -> Unit, clearSymbols: () -> Unit, evaluate: () -> Unit ) { + val fractionalIcon = remember { if (Formatter.fractional == KEY_DOT) UnittoIcons.Dot else UnittoIcons.Comma } + Column(modifier = modifier) { val buttonModifier = Modifier.weight(1f).padding(2.dp) Row(Modifier.weight(1f)) { - KeyboardButtonAdditional(buttonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad) { toggleAngleMode() } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.SquareRoot) { addSymbol(KEY_SQRT) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Pi) { addSymbol(KEY_PI) } + KeyboardButtonAdditional(buttonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad, allowVibration) { toggleAngleMode() } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.SquareRoot, allowVibration) { addSymbol(KEY_SQRT) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Pi, allowVibration) { addSymbol(KEY_PI) } - KeyboardButtonLight(buttonModifier, UnittoIcons.Key7, { addSymbol(KEY_7) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key8, { addSymbol(KEY_8) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key9, { addSymbol(KEY_9) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.LeftBracket, { addSymbol(KEY_LEFT_BRACKET) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.RightBracket, { addSymbol(KEY_RIGHT_BRACKET) }) + KeyboardButtonLight(buttonModifier, UnittoIcons.Key7, allowVibration) { addSymbol(KEY_7) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key8, allowVibration) { addSymbol(KEY_8) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key9, allowVibration) { addSymbol(KEY_9) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.LeftBracket, allowVibration) { addSymbol(KEY_LEFT_BRACKET) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.RightBracket, allowVibration) { addSymbol(KEY_RIGHT_BRACKET) } } Row(Modifier.weight(1f)) { - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Modulo) { addSymbol(KEY_MODULO) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Exponent) { addSymbol(KEY_EXPONENT) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Factorial) { addSymbol(KEY_FACTORIAL) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Modulo, allowVibration) { addSymbol(KEY_MODULO) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Exponent, allowVibration) { addSymbol(KEY_EXPONENT) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Factorial, allowVibration) { addSymbol(KEY_FACTORIAL) } - KeyboardButtonLight(buttonModifier, UnittoIcons.Key4, { addSymbol(KEY_4) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key5, { addSymbol(KEY_5) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key6, { addSymbol(KEY_6) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Multiply, { addSymbol(KEY_MULTIPLY_DISPLAY) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Divide, { addSymbol(KEY_DIVIDE_DISPLAY) }) + KeyboardButtonLight(buttonModifier, UnittoIcons.Key4, allowVibration) { addSymbol(KEY_4) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key5, allowVibration) { addSymbol(KEY_5) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key6, allowVibration) { addSymbol(KEY_6) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Multiply, allowVibration) { addSymbol(KEY_MULTIPLY_DISPLAY) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Divide, allowVibration) { addSymbol(KEY_DIVIDE_DISPLAY) } } Row(Modifier.weight(1f)) { - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Sin) { addSymbol(KEY_SIN) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Cos) { addSymbol(KEY_COS) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Tan) { addSymbol(KEY_TAN) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Sin, allowVibration) { addSymbol(KEY_SIN) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Cos, allowVibration) { addSymbol(KEY_COS) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Tan, allowVibration) { addSymbol(KEY_TAN) } - KeyboardButtonLight(buttonModifier, UnittoIcons.Key1, { addSymbol(KEY_1) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key2, { addSymbol(KEY_2) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Key3, { addSymbol(KEY_3) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Minus, { addSymbol(KEY_MINUS_DISPLAY) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Percent, { addSymbol(KEY_PERCENT) }) + KeyboardButtonLight(buttonModifier, UnittoIcons.Key1, allowVibration) { addSymbol(KEY_1) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key2, allowVibration) { addSymbol(KEY_2) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key3, allowVibration) { addSymbol(KEY_3) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Minus, allowVibration) { addSymbol(KEY_MINUS_DISPLAY) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Percent, allowVibration) { addSymbol(KEY_PERCENT) } } Row(Modifier.weight(1f)) { - KeyboardButtonAdditional(buttonModifier, UnittoIcons.E) { addSymbol(KEY_E_SMALL) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Ln) { addSymbol(KEY_LN) } - KeyboardButtonAdditional(buttonModifier, UnittoIcons.Log) { addSymbol(KEY_LOG) } - KeyboardButtonLight(buttonModifier, UnittoIcons.Key0, { addSymbol(KEY_0) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Dot, { addSymbol(KEY_DOT) }) - KeyboardButtonLight(buttonModifier, UnittoIcons.Delete, { deleteSymbol() }, onLongClick = clearSymbols) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Plus, { addSymbol(KEY_PLUS) }) - KeyboardButtonFilled(buttonModifier, UnittoIcons.Equal, { evaluate() }) + KeyboardButtonAdditional(buttonModifier, UnittoIcons.E, allowVibration) { addSymbol(KEY_E_SMALL) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Ln, allowVibration) { addSymbol(KEY_LN) } + KeyboardButtonAdditional(buttonModifier, UnittoIcons.Log, allowVibration) { addSymbol(KEY_LOG) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Key0, allowVibration) { addSymbol(KEY_0) } + KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration) { addSymbol(KEY_DOT) } + KeyboardButtonLight(buttonModifier, UnittoIcons.Delete, allowVibration, clearSymbols) { deleteSymbol() } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Plus, allowVibration) { addSymbol(KEY_PLUS) } + KeyboardButtonFilled(buttonModifier, UnittoIcons.Equal, allowVibration) { evaluate() } } } } @@ -312,11 +322,12 @@ private fun LandscapeKeyboard( private fun PreviewCalculatorKeyboard() { CalculatorKeyboard( modifier = Modifier, + angleMode = AngleMode.DEG, addSymbol = {}, clearSymbols = {}, deleteSymbol = {}, toggleAngleMode = {}, - angleMode = AngleMode.DEG, - evaluate = {} + evaluate = {}, + allowVibration = false ) } diff --git a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/Keyboard.kt b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/Keyboard.kt index 870e812e..a13d0a70 100644 --- a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/Keyboard.kt +++ b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/Keyboard.kt @@ -129,34 +129,34 @@ private fun DefaultKeyboard( // Column modifier val cModifier = Modifier.weight(1f) Row(cModifier) { - KeyboardButtonFilled(bModifier, UnittoIcons.LeftBracket, { addDigit(KEY_LEFT_BRACKET) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.RightBracket, { addDigit(KEY_RIGHT_BRACKET) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.Exponent, { addDigit(KEY_EXPONENT) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.SquareRoot, { addDigit(KEY_SQRT) }, allowVibration = allowVibration) + KeyboardButtonFilled(bModifier, UnittoIcons.LeftBracket, allowVibration) { addDigit(KEY_LEFT_BRACKET) } + KeyboardButtonFilled(bModifier, UnittoIcons.RightBracket, allowVibration) { addDigit(KEY_RIGHT_BRACKET) } + KeyboardButtonFilled(bModifier, UnittoIcons.Exponent, allowVibration) { addDigit(KEY_EXPONENT) } + KeyboardButtonFilled(bModifier, UnittoIcons.SquareRoot, allowVibration) { addDigit(KEY_SQRT) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key7, { addDigit(KEY_7) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key8, { addDigit(KEY_8) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key9, { addDigit(KEY_9) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.Divide, { addDigit(KEY_DIVIDE) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration) { addDigit(KEY_7) } + KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration) { addDigit(KEY_8) } + KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration) { addDigit(KEY_9) } + KeyboardButtonFilled(bModifier, UnittoIcons.Divide, allowVibration) { addDigit(KEY_DIVIDE) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key4, { addDigit(KEY_4) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key5, { addDigit(KEY_5) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key6, { addDigit(KEY_6) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.Multiply, { addDigit(KEY_MULTIPLY) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration) { addDigit(KEY_4) } + KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration) { addDigit(KEY_5) } + KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration) { addDigit(KEY_6) } + KeyboardButtonFilled(bModifier, UnittoIcons.Multiply, allowVibration) { addDigit(KEY_MULTIPLY) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key1, { addDigit(KEY_1) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key2, { addDigit(KEY_2) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key3, { addDigit(KEY_3) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.Minus, { addDigit(KEY_MINUS) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration) { addDigit(KEY_1) } + KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration) { addDigit(KEY_2) } + KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration) { addDigit(KEY_3) } + KeyboardButtonFilled(bModifier, UnittoIcons.Minus, allowVibration) { addDigit(KEY_MINUS) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key0, { addDigit(KEY_0) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, fractionalIcon, { addDigit(KEY_DOT) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Delete, { deleteDigit() }, clearInput, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.Plus, { addDigit(KEY_PLUS) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration) { addDigit(KEY_0) } + KeyboardButtonLight(bModifier, fractionalIcon, allowVibration) { addDigit(KEY_DOT) } + KeyboardButtonLight(bModifier, UnittoIcons.Delete, allowVibration, clearInput) { deleteDigit() } + KeyboardButtonFilled(bModifier, UnittoIcons.Plus, allowVibration) { addDigit(KEY_PLUS) } } } } @@ -178,42 +178,33 @@ private fun BaseKeyboard( val cModifier = Modifier.weight(1f) Row(cModifier) { - KeyboardButtonFilled(bModifier, UnittoIcons.KeyA, { addDigit(KEY_BASE_A) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.KeyB, { addDigit(KEY_BASE_B) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.KeyC, { addDigit(KEY_BASE_C) }, allowVibration = allowVibration) + KeyboardButtonFilled(bModifier, UnittoIcons.KeyA, allowVibration) { addDigit(KEY_BASE_A) } + KeyboardButtonFilled(bModifier, UnittoIcons.KeyB, allowVibration) { addDigit(KEY_BASE_B) } + KeyboardButtonFilled(bModifier, UnittoIcons.KeyC, allowVibration) { addDigit(KEY_BASE_C) } } Row(cModifier) { - KeyboardButtonFilled(bModifier, UnittoIcons.KeyD, { addDigit(KEY_BASE_D) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.KeyE, { addDigit(KEY_BASE_E) }, allowVibration = allowVibration) - KeyboardButtonFilled(bModifier, UnittoIcons.KeyF, { addDigit(KEY_BASE_F) }, allowVibration = allowVibration) + KeyboardButtonFilled(bModifier, UnittoIcons.KeyD, allowVibration) { addDigit(KEY_BASE_D) } + KeyboardButtonFilled(bModifier, UnittoIcons.KeyE, allowVibration) { addDigit(KEY_BASE_E) } + KeyboardButtonFilled(bModifier, UnittoIcons.KeyF, allowVibration) { addDigit(KEY_BASE_F) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key7, { addDigit(KEY_7) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key8, { addDigit(KEY_8) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key9, { addDigit(KEY_9) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration) { addDigit(KEY_7) } + KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration) { addDigit(KEY_8) } + KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration) { addDigit(KEY_9) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key4, { addDigit(KEY_4) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key5, { addDigit(KEY_5) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key6, { addDigit(KEY_6) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration) { addDigit(KEY_4) } + KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration) { addDigit(KEY_5) } + KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration) { addDigit(KEY_6) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key1, { addDigit(KEY_1) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key2, { addDigit(KEY_2) }, allowVibration = allowVibration) - KeyboardButtonLight(bModifier, UnittoIcons.Key3, { addDigit(KEY_3) }, allowVibration = allowVibration) + KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration) { addDigit(KEY_1) } + KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration) { addDigit(KEY_2) } + KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration) { addDigit(KEY_3) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key0, { addDigit(KEY_0) }, allowVibration = allowVibration) - KeyboardButtonLight( - Modifier - .fillMaxSize() - .weight(2f) - .padding(4.dp), - UnittoIcons.Delete, - allowVibration = allowVibration, - onClick = { deleteDigit() }, - onLongClick = clearInput - ) + KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration) { addDigit(KEY_0) } + KeyboardButtonLight(Modifier.fillMaxSize().weight(2f).padding(4.dp), UnittoIcons.Delete, allowVibration, clearInput) { deleteDigit() } } } } diff --git a/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/component/EpochKeyboard.kt b/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/component/EpochKeyboard.kt index 9516883b..8fedab97 100644 --- a/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/component/EpochKeyboard.kt +++ b/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/component/EpochKeyboard.kt @@ -71,29 +71,23 @@ internal fun EpochKeyboard( .weight(2f) .padding(4.dp) Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration = false, onClick = { addSymbol(KEY_7) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration = false, onClick = { addSymbol(KEY_8) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration = false, onClick = { addSymbol(KEY_9) }) + KeyboardButtonLight(bModifier, UnittoIcons.Key7, false) { addSymbol(KEY_7) } + KeyboardButtonLight(bModifier, UnittoIcons.Key8, false) { addSymbol(KEY_8) } + KeyboardButtonLight(bModifier, UnittoIcons.Key9, false) { addSymbol(KEY_9) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration = false, onClick = { addSymbol(KEY_4) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration = false, onClick = { addSymbol(KEY_5) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration = false, onClick = { addSymbol(KEY_6) }) + KeyboardButtonLight(bModifier, UnittoIcons.Key4, false) { addSymbol(KEY_4) } + KeyboardButtonLight(bModifier, UnittoIcons.Key5, false) { addSymbol(KEY_5) } + KeyboardButtonLight(bModifier, UnittoIcons.Key6, false) { addSymbol(KEY_6) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration = false, onClick = { addSymbol(KEY_1) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration = false, onClick = { addSymbol(KEY_2) }) - KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration = false, onClick = { addSymbol(KEY_3) }) + KeyboardButtonLight(bModifier, UnittoIcons.Key1, false) { addSymbol(KEY_1) } + KeyboardButtonLight(bModifier, UnittoIcons.Key2, false) { addSymbol(KEY_2) } + KeyboardButtonLight(bModifier, UnittoIcons.Key3, false) { addSymbol(KEY_3) } } Row(cModifier) { - KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration = false, onClick = { addSymbol(KEY_0) }) - KeyboardButtonLight( - dModifier, - UnittoIcons.Delete, - allowVibration = false, - onClick = { deleteSymbol() }, - onLongClick = clearSymbols - ) + KeyboardButtonLight(bModifier, UnittoIcons.Key0, false) { addSymbol(KEY_0) } + KeyboardButtonLight(dModifier, UnittoIcons.Delete, false, clearSymbols) { deleteSymbol() } } } } \ No newline at end of file