mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-30 22:00:55 +02:00
Keyboard buttons refactor
+ Fixed vibrations + Fixed fractional button icon
This commit is contained in:
parent
d6db240222
commit
fa1ec777cd
@ -49,7 +49,8 @@ fun BasicKeyboardButton(
|
|||||||
containerColor: Color,
|
containerColor: Color,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
iconColor: Color,
|
iconColor: Color,
|
||||||
allowVibration: Boolean
|
allowVibration: Boolean,
|
||||||
|
contentPadding: PaddingValues = PaddingValues(24.dp, 8.dp)
|
||||||
) {
|
) {
|
||||||
val view = LocalView.current
|
val view = LocalView.current
|
||||||
val interactionSource = remember { MutableInteractionSource() }
|
val interactionSource = remember { MutableInteractionSource() }
|
||||||
@ -65,7 +66,7 @@ fun BasicKeyboardButton(
|
|||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
shape = RoundedCornerShape(cornerRadius),
|
shape = RoundedCornerShape(cornerRadius),
|
||||||
containerColor = containerColor,
|
containerColor = containerColor,
|
||||||
contentPadding = PaddingValues(24.dp, 8.dp),
|
contentPadding = contentPadding,
|
||||||
interactionSource = interactionSource
|
interactionSource = interactionSource
|
||||||
) {
|
) {
|
||||||
Icon(icon, null, modifier = Modifier.fillMaxHeight(), tint = iconColor)
|
Icon(icon, null, modifier = Modifier.fillMaxHeight(), tint = iconColor)
|
||||||
@ -80,9 +81,9 @@ fun BasicKeyboardButton(
|
|||||||
fun KeyboardButtonLight(
|
fun KeyboardButtonLight(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
onClick: () -> Unit,
|
allowVibration: Boolean,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
allowVibration: Boolean = false
|
onClick: () -> Unit,
|
||||||
) {
|
) {
|
||||||
BasicKeyboardButton(
|
BasicKeyboardButton(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
@ -99,9 +100,9 @@ fun KeyboardButtonLight(
|
|||||||
fun KeyboardButtonFilled(
|
fun KeyboardButtonFilled(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
onClick: () -> Unit,
|
allowVibration: Boolean,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
allowVibration: Boolean = false
|
onClick: () -> Unit,
|
||||||
) {
|
) {
|
||||||
BasicKeyboardButton(
|
BasicKeyboardButton(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
@ -118,21 +119,21 @@ fun KeyboardButtonFilled(
|
|||||||
fun KeyboardButtonAdditional(
|
fun KeyboardButtonAdditional(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
allowVibration: Boolean,
|
||||||
|
onLongClick: (() -> Unit)? = null,
|
||||||
onClick: () -> Unit
|
onClick: () -> Unit
|
||||||
) {
|
) {
|
||||||
UnittoButton(
|
|
||||||
|
BasicKeyboardButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.minimumInteractiveComponentSize()
|
.minimumInteractiveComponentSize()
|
||||||
.heightIn(max = 48.dp),
|
.heightIn(max = 48.dp),
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
contentPadding = PaddingValues(12.dp, 2.dp)
|
icon = icon,
|
||||||
) {
|
iconColor = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
Icon(
|
allowVibration = allowVibration,
|
||||||
imageVector = icon,
|
contentPadding = PaddingValues(12.dp, 2.dp),
|
||||||
contentDescription = null,
|
onLongClick = onLongClick
|
||||||
modifier = Modifier.fillMaxHeight(),
|
)
|
||||||
tint = MaterialTheme.colorScheme.onSurfaceVariant
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -264,11 +264,12 @@ private fun CalculatorScreen(
|
|||||||
numPad = {
|
numPad = {
|
||||||
CalculatorKeyboard(
|
CalculatorKeyboard(
|
||||||
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp),
|
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp),
|
||||||
|
angleMode = uiState.angleMode,
|
||||||
|
allowVibration = uiState.allowVibration,
|
||||||
addSymbol = addSymbol,
|
addSymbol = addSymbol,
|
||||||
clearSymbols = clearSymbols,
|
clearSymbols = clearSymbols,
|
||||||
deleteSymbol = deleteSymbol,
|
deleteSymbol = deleteSymbol,
|
||||||
toggleAngleMode = toggleAngleMode,
|
toggleAngleMode = toggleAngleMode,
|
||||||
angleMode = uiState.angleMode,
|
|
||||||
evaluate = evaluate
|
evaluate = evaluate
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -25,5 +25,6 @@ internal data class CalculatorUIState(
|
|||||||
val input: TextFieldValue = TextFieldValue(),
|
val input: TextFieldValue = TextFieldValue(),
|
||||||
val output: String = "",
|
val output: String = "",
|
||||||
val angleMode: AngleMode = AngleMode.RAD,
|
val angleMode: AngleMode = AngleMode.RAD,
|
||||||
val history: List<HistoryItem> = emptyList()
|
val history: List<HistoryItem> = emptyList(),
|
||||||
|
val allowVibration: Boolean = false
|
||||||
)
|
)
|
||||||
|
@ -66,12 +66,13 @@ internal class CalculatorViewModel @Inject constructor(
|
|||||||
|
|
||||||
val uiState = combine(
|
val uiState = combine(
|
||||||
textFieldController.input, _output, _angleMode, _history, _userPrefs
|
textFieldController.input, _output, _angleMode, _history, _userPrefs
|
||||||
) { input, output, angleMode, history, _ ->
|
) { input, output, angleMode, history, userPrefs ->
|
||||||
return@combine CalculatorUIState(
|
return@combine CalculatorUIState(
|
||||||
input = input,
|
input = input,
|
||||||
output = output,
|
output = output,
|
||||||
angleMode = angleMode,
|
angleMode = angleMode,
|
||||||
history = history
|
history = history,
|
||||||
|
allowVibration = userPrefs.enableVibrations
|
||||||
)
|
)
|
||||||
}.stateIn(
|
}.stateIn(
|
||||||
viewModelScope, SharingStarted.WhileSubscribed(5000L), CalculatorUIState()
|
viewModelScope, SharingStarted.WhileSubscribed(5000L), CalculatorUIState()
|
||||||
|
@ -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_SIN
|
||||||
import com.sadellie.unitto.core.base.KEY_SQRT
|
import com.sadellie.unitto.core.base.KEY_SQRT
|
||||||
import com.sadellie.unitto.core.base.KEY_TAN
|
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.KeyboardButtonAdditional
|
||||||
import com.sadellie.unitto.core.ui.common.KeyboardButtonFilled
|
import com.sadellie.unitto.core.ui.common.KeyboardButtonFilled
|
||||||
import com.sadellie.unitto.core.ui.common.KeyboardButtonLight
|
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
|
||||||
|
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.Cos
|
||||||
import com.sadellie.unitto.core.ui.common.key.unittoicons.Deg
|
import com.sadellie.unitto.core.ui.common.key.unittoicons.Deg
|
||||||
import com.sadellie.unitto.core.ui.common.key.unittoicons.Delete
|
import com.sadellie.unitto.core.ui.common.key.unittoicons.Delete
|
||||||
@ -117,18 +119,20 @@ import com.sadellie.unitto.feature.calculator.AngleMode
|
|||||||
@Composable
|
@Composable
|
||||||
internal fun CalculatorKeyboard(
|
internal fun CalculatorKeyboard(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
|
angleMode: AngleMode,
|
||||||
|
allowVibration: Boolean,
|
||||||
addSymbol: (String) -> Unit,
|
addSymbol: (String) -> Unit,
|
||||||
clearSymbols: () -> Unit,
|
clearSymbols: () -> Unit,
|
||||||
deleteSymbol: () -> Unit,
|
deleteSymbol: () -> Unit,
|
||||||
toggleAngleMode: () -> Unit,
|
toggleAngleMode: () -> Unit,
|
||||||
angleMode: AngleMode,
|
|
||||||
evaluate: () -> Unit
|
evaluate: () -> Unit
|
||||||
) {
|
) {
|
||||||
if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
PortraitKeyboard(
|
PortraitKeyboard(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
addSymbol = addSymbol,
|
|
||||||
angleMode = angleMode,
|
angleMode = angleMode,
|
||||||
|
allowVibration = allowVibration,
|
||||||
|
addSymbol = addSymbol,
|
||||||
toggleAngleMode = toggleAngleMode,
|
toggleAngleMode = toggleAngleMode,
|
||||||
deleteSymbol = deleteSymbol,
|
deleteSymbol = deleteSymbol,
|
||||||
clearSymbols = clearSymbols,
|
clearSymbols = clearSymbols,
|
||||||
@ -137,8 +141,9 @@ internal fun CalculatorKeyboard(
|
|||||||
} else {
|
} else {
|
||||||
LandscapeKeyboard(
|
LandscapeKeyboard(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
addSymbol = addSymbol,
|
|
||||||
angleMode = angleMode,
|
angleMode = angleMode,
|
||||||
|
allowVibration = allowVibration,
|
||||||
|
addSymbol = addSymbol,
|
||||||
toggleAngleMode = toggleAngleMode,
|
toggleAngleMode = toggleAngleMode,
|
||||||
deleteSymbol = deleteSymbol,
|
deleteSymbol = deleteSymbol,
|
||||||
clearSymbols = clearSymbols,
|
clearSymbols = clearSymbols,
|
||||||
@ -150,13 +155,15 @@ internal fun CalculatorKeyboard(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun PortraitKeyboard(
|
private fun PortraitKeyboard(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
addSymbol: (String) -> Unit,
|
|
||||||
angleMode: AngleMode,
|
angleMode: AngleMode,
|
||||||
|
allowVibration: Boolean,
|
||||||
|
addSymbol: (String) -> Unit,
|
||||||
toggleAngleMode: () -> Unit,
|
toggleAngleMode: () -> Unit,
|
||||||
deleteSymbol: () -> Unit,
|
deleteSymbol: () -> Unit,
|
||||||
clearSymbols: () -> Unit,
|
clearSymbols: () -> Unit,
|
||||||
evaluate: () -> Unit
|
evaluate: () -> Unit
|
||||||
) {
|
) {
|
||||||
|
val fractionalIcon = remember { if (Formatter.fractional == KEY_DOT) UnittoIcons.Dot else UnittoIcons.Comma }
|
||||||
var showAdditional: Boolean by remember { mutableStateOf(false) }
|
var showAdditional: Boolean by remember { mutableStateOf(false) }
|
||||||
val expandRotation: Float by animateFloatAsState(
|
val expandRotation: Float by animateFloatAsState(
|
||||||
targetValue = if (showAdditional) 0f else 180f,
|
targetValue = if (showAdditional) 0f else 180f,
|
||||||
@ -183,24 +190,24 @@ private fun PortraitKeyboard(
|
|||||||
// Additional buttons
|
// Additional buttons
|
||||||
Column(modifier = weightModifier) {
|
Column(modifier = weightModifier) {
|
||||||
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.SquareRoot) { addSymbol(KEY_SQRT) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.SquareRoot, allowVibration) { addSymbol(KEY_SQRT) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Pi) { addSymbol(KEY_PI) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Pi, allowVibration) { addSymbol(KEY_PI) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Exponent) { addSymbol(KEY_EXPONENT) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Exponent, allowVibration) { addSymbol(KEY_EXPONENT) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Factorial) { addSymbol(KEY_FACTORIAL) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Factorial, allowVibration) { addSymbol(KEY_FACTORIAL) }
|
||||||
}
|
}
|
||||||
AnimatedVisibility(visible = showAdditional) {
|
AnimatedVisibility(visible = showAdditional) {
|
||||||
Column {
|
Column {
|
||||||
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad) { toggleAngleMode() }
|
KeyboardButtonAdditional(additionalButtonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad, allowVibration) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Sin) { addSymbol(KEY_SIN) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Sin, allowVibration) { addSymbol(KEY_SIN) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Cos) { addSymbol(KEY_COS) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Cos, allowVibration) { addSymbol(KEY_COS) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Tan) { addSymbol(KEY_TAN) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Tan, allowVibration) { addSymbol(KEY_TAN) }
|
||||||
}
|
}
|
||||||
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
Row(Modifier, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Modulo) { addSymbol(KEY_MODULO) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Modulo, allowVibration) { addSymbol(KEY_MODULO) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.E) { addSymbol(KEY_E_SMALL) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.E, allowVibration) { addSymbol(KEY_E_SMALL) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Ln) { addSymbol(KEY_LN) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Ln, allowVibration) { addSymbol(KEY_LN) }
|
||||||
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Log) { addSymbol(KEY_LOG) }
|
KeyboardButtonAdditional(additionalButtonModifier, UnittoIcons.Log, allowVibration) { addSymbol(KEY_LOG) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,35 +222,35 @@ private fun PortraitKeyboard(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Row(weightModifier) {
|
Row(weightModifier) {
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.LeftBracket, { addSymbol(KEY_LEFT_BRACKET) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.LeftBracket, allowVibration) { addSymbol(KEY_LEFT_BRACKET) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.RightBracket, { addSymbol(KEY_RIGHT_BRACKET) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.RightBracket, allowVibration) { addSymbol(KEY_RIGHT_BRACKET) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Percent, { addSymbol(KEY_PERCENT) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Percent, allowVibration) { addSymbol(KEY_PERCENT) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Divide, { addSymbol(KEY_DIVIDE_DISPLAY) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Divide, allowVibration) { addSymbol(KEY_DIVIDE_DISPLAY) }
|
||||||
}
|
}
|
||||||
|
|
||||||
Row(weightModifier) {
|
Row(weightModifier) {
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key7, { addSymbol(KEY_7) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key7, allowVibration) { addSymbol(KEY_7) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key8, { addSymbol(KEY_8) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key8, allowVibration) { addSymbol(KEY_8) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key9, { addSymbol(KEY_9) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key9, allowVibration) { addSymbol(KEY_9) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Multiply, { addSymbol(KEY_MULTIPLY_DISPLAY) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Multiply, allowVibration) { addSymbol(KEY_MULTIPLY_DISPLAY) }
|
||||||
}
|
}
|
||||||
Row(weightModifier) {
|
Row(weightModifier) {
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key4, { addSymbol(KEY_4) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key4, allowVibration) { addSymbol(KEY_4) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key5, { addSymbol(KEY_5) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key5, allowVibration) { addSymbol(KEY_5) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key6, { addSymbol(KEY_6) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key6, allowVibration) { addSymbol(KEY_6) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Minus, { addSymbol(KEY_MINUS_DISPLAY) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Minus, allowVibration) { addSymbol(KEY_MINUS_DISPLAY) }
|
||||||
}
|
}
|
||||||
Row(weightModifier) {
|
Row(weightModifier) {
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key1, { addSymbol(KEY_1) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key1, allowVibration) { addSymbol(KEY_1) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key2, { addSymbol(KEY_2) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key2, allowVibration) { addSymbol(KEY_2) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key3, { addSymbol(KEY_3) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key3, allowVibration) { addSymbol(KEY_3) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Plus, { addSymbol(KEY_PLUS) })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Plus, allowVibration) { addSymbol(KEY_PLUS) }
|
||||||
}
|
}
|
||||||
Row(weightModifier) {
|
Row(weightModifier) {
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key0, { addSymbol(KEY_0) })
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Key0, allowVibration) { addSymbol(KEY_0) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Dot, { addSymbol(KEY_DOT) })
|
KeyboardButtonLight(mainButtonModifier, fractionalIcon, allowVibration) { addSymbol(KEY_DOT) }
|
||||||
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Delete, { deleteSymbol() }, onLongClick = clearSymbols)
|
KeyboardButtonLight(mainButtonModifier, UnittoIcons.Delete, allowVibration, clearSymbols) { deleteSymbol() }
|
||||||
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Equal, { evaluate() })
|
KeyboardButtonFilled(mainButtonModifier, UnittoIcons.Equal, allowVibration) { evaluate() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,58 +258,61 @@ private fun PortraitKeyboard(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun LandscapeKeyboard(
|
private fun LandscapeKeyboard(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
addSymbol: (String) -> Unit,
|
|
||||||
angleMode: AngleMode,
|
angleMode: AngleMode,
|
||||||
|
allowVibration: Boolean,
|
||||||
|
addSymbol: (String) -> Unit,
|
||||||
toggleAngleMode: () -> Unit,
|
toggleAngleMode: () -> Unit,
|
||||||
deleteSymbol: () -> Unit,
|
deleteSymbol: () -> Unit,
|
||||||
clearSymbols: () -> Unit,
|
clearSymbols: () -> Unit,
|
||||||
evaluate: () -> Unit
|
evaluate: () -> Unit
|
||||||
) {
|
) {
|
||||||
|
val fractionalIcon = remember { if (Formatter.fractional == KEY_DOT) UnittoIcons.Dot else UnittoIcons.Comma }
|
||||||
|
|
||||||
Column(modifier = modifier) {
|
Column(modifier = modifier) {
|
||||||
val buttonModifier = Modifier.weight(1f).padding(2.dp)
|
val buttonModifier = Modifier.weight(1f).padding(2.dp)
|
||||||
|
|
||||||
Row(Modifier.weight(1f)) {
|
Row(Modifier.weight(1f)) {
|
||||||
KeyboardButtonAdditional(buttonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad) { toggleAngleMode() }
|
KeyboardButtonAdditional(buttonModifier, if (angleMode == AngleMode.DEG) UnittoIcons.Deg else UnittoIcons.Rad, allowVibration) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.SquareRoot) { addSymbol(KEY_SQRT) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.SquareRoot, allowVibration) { addSymbol(KEY_SQRT) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Pi) { addSymbol(KEY_PI) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Pi, allowVibration) { addSymbol(KEY_PI) }
|
||||||
|
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key7, { addSymbol(KEY_7) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key7, allowVibration) { addSymbol(KEY_7) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key8, { addSymbol(KEY_8) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key8, allowVibration) { addSymbol(KEY_8) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key9, { addSymbol(KEY_9) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key9, allowVibration) { addSymbol(KEY_9) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.LeftBracket, { addSymbol(KEY_LEFT_BRACKET) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.LeftBracket, allowVibration) { addSymbol(KEY_LEFT_BRACKET) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.RightBracket, { addSymbol(KEY_RIGHT_BRACKET) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.RightBracket, allowVibration) { addSymbol(KEY_RIGHT_BRACKET) }
|
||||||
}
|
}
|
||||||
Row(Modifier.weight(1f)) {
|
Row(Modifier.weight(1f)) {
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Modulo) { addSymbol(KEY_MODULO) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Modulo, allowVibration) { addSymbol(KEY_MODULO) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Exponent) { addSymbol(KEY_EXPONENT) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Exponent, allowVibration) { addSymbol(KEY_EXPONENT) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Factorial) { addSymbol(KEY_FACTORIAL) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Factorial, allowVibration) { addSymbol(KEY_FACTORIAL) }
|
||||||
|
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key4, { addSymbol(KEY_4) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key4, allowVibration) { addSymbol(KEY_4) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key5, { addSymbol(KEY_5) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key5, allowVibration) { addSymbol(KEY_5) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key6, { addSymbol(KEY_6) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key6, allowVibration) { addSymbol(KEY_6) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Multiply, { addSymbol(KEY_MULTIPLY_DISPLAY) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Multiply, allowVibration) { addSymbol(KEY_MULTIPLY_DISPLAY) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Divide, { addSymbol(KEY_DIVIDE_DISPLAY) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Divide, allowVibration) { addSymbol(KEY_DIVIDE_DISPLAY) }
|
||||||
}
|
}
|
||||||
Row(Modifier.weight(1f)) {
|
Row(Modifier.weight(1f)) {
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Sin) { addSymbol(KEY_SIN) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Sin, allowVibration) { addSymbol(KEY_SIN) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Cos) { addSymbol(KEY_COS) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Cos, allowVibration) { addSymbol(KEY_COS) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Tan) { addSymbol(KEY_TAN) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Tan, allowVibration) { addSymbol(KEY_TAN) }
|
||||||
|
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key1, { addSymbol(KEY_1) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key1, allowVibration) { addSymbol(KEY_1) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key2, { addSymbol(KEY_2) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key2, allowVibration) { addSymbol(KEY_2) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key3, { addSymbol(KEY_3) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key3, allowVibration) { addSymbol(KEY_3) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Minus, { addSymbol(KEY_MINUS_DISPLAY) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Minus, allowVibration) { addSymbol(KEY_MINUS_DISPLAY) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Percent, { addSymbol(KEY_PERCENT) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Percent, allowVibration) { addSymbol(KEY_PERCENT) }
|
||||||
}
|
}
|
||||||
Row(Modifier.weight(1f)) {
|
Row(Modifier.weight(1f)) {
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.E) { addSymbol(KEY_E_SMALL) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.E, allowVibration) { addSymbol(KEY_E_SMALL) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Ln) { addSymbol(KEY_LN) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Ln, allowVibration) { addSymbol(KEY_LN) }
|
||||||
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Log) { addSymbol(KEY_LOG) }
|
KeyboardButtonAdditional(buttonModifier, UnittoIcons.Log, allowVibration) { addSymbol(KEY_LOG) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Key0, { addSymbol(KEY_0) })
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Key0, allowVibration) { addSymbol(KEY_0) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Dot, { addSymbol(KEY_DOT) })
|
KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration) { addSymbol(KEY_DOT) }
|
||||||
KeyboardButtonLight(buttonModifier, UnittoIcons.Delete, { deleteSymbol() }, onLongClick = clearSymbols)
|
KeyboardButtonLight(buttonModifier, UnittoIcons.Delete, allowVibration, clearSymbols) { deleteSymbol() }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Plus, { addSymbol(KEY_PLUS) })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Plus, allowVibration) { addSymbol(KEY_PLUS) }
|
||||||
KeyboardButtonFilled(buttonModifier, UnittoIcons.Equal, { evaluate() })
|
KeyboardButtonFilled(buttonModifier, UnittoIcons.Equal, allowVibration) { evaluate() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,11 +322,12 @@ private fun LandscapeKeyboard(
|
|||||||
private fun PreviewCalculatorKeyboard() {
|
private fun PreviewCalculatorKeyboard() {
|
||||||
CalculatorKeyboard(
|
CalculatorKeyboard(
|
||||||
modifier = Modifier,
|
modifier = Modifier,
|
||||||
|
angleMode = AngleMode.DEG,
|
||||||
addSymbol = {},
|
addSymbol = {},
|
||||||
clearSymbols = {},
|
clearSymbols = {},
|
||||||
deleteSymbol = {},
|
deleteSymbol = {},
|
||||||
toggleAngleMode = {},
|
toggleAngleMode = {},
|
||||||
angleMode = AngleMode.DEG,
|
evaluate = {},
|
||||||
evaluate = {}
|
allowVibration = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -129,34 +129,34 @@ private fun DefaultKeyboard(
|
|||||||
// Column modifier
|
// Column modifier
|
||||||
val cModifier = Modifier.weight(1f)
|
val cModifier = Modifier.weight(1f)
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.LeftBracket, { addDigit(KEY_LEFT_BRACKET) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.LeftBracket, allowVibration) { addDigit(KEY_LEFT_BRACKET) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.RightBracket, { addDigit(KEY_RIGHT_BRACKET) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.RightBracket, allowVibration) { addDigit(KEY_RIGHT_BRACKET) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.Exponent, { addDigit(KEY_EXPONENT) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.Exponent, allowVibration) { addDigit(KEY_EXPONENT) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.SquareRoot, { addDigit(KEY_SQRT) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.SquareRoot, allowVibration) { addDigit(KEY_SQRT) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key7, { addDigit(KEY_7) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration) { addDigit(KEY_7) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key8, { addDigit(KEY_8) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration) { addDigit(KEY_8) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key9, { addDigit(KEY_9) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration) { addDigit(KEY_9) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.Divide, { addDigit(KEY_DIVIDE) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.Divide, allowVibration) { addDigit(KEY_DIVIDE) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key4, { addDigit(KEY_4) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration) { addDigit(KEY_4) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key5, { addDigit(KEY_5) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration) { addDigit(KEY_5) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key6, { addDigit(KEY_6) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration) { addDigit(KEY_6) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.Multiply, { addDigit(KEY_MULTIPLY) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.Multiply, allowVibration) { addDigit(KEY_MULTIPLY) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key1, { addDigit(KEY_1) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration) { addDigit(KEY_1) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key2, { addDigit(KEY_2) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration) { addDigit(KEY_2) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key3, { addDigit(KEY_3) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration) { addDigit(KEY_3) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.Minus, { addDigit(KEY_MINUS) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.Minus, allowVibration) { addDigit(KEY_MINUS) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key0, { addDigit(KEY_0) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration) { addDigit(KEY_0) }
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, { addDigit(KEY_DOT) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration) { addDigit(KEY_DOT) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Delete, { deleteDigit() }, clearInput, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Delete, allowVibration, clearInput) { deleteDigit() }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.Plus, { addDigit(KEY_PLUS) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.Plus, allowVibration) { addDigit(KEY_PLUS) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,42 +178,33 @@ private fun BaseKeyboard(
|
|||||||
val cModifier = Modifier.weight(1f)
|
val cModifier = Modifier.weight(1f)
|
||||||
|
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyA, { addDigit(KEY_BASE_A) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyA, allowVibration) { addDigit(KEY_BASE_A) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyB, { addDigit(KEY_BASE_B) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyB, allowVibration) { addDigit(KEY_BASE_B) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyC, { addDigit(KEY_BASE_C) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyC, allowVibration) { addDigit(KEY_BASE_C) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyD, { addDigit(KEY_BASE_D) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyD, allowVibration) { addDigit(KEY_BASE_D) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyE, { addDigit(KEY_BASE_E) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyE, allowVibration) { addDigit(KEY_BASE_E) }
|
||||||
KeyboardButtonFilled(bModifier, UnittoIcons.KeyF, { addDigit(KEY_BASE_F) }, allowVibration = allowVibration)
|
KeyboardButtonFilled(bModifier, UnittoIcons.KeyF, allowVibration) { addDigit(KEY_BASE_F) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key7, { addDigit(KEY_7) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration) { addDigit(KEY_7) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key8, { addDigit(KEY_8) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration) { addDigit(KEY_8) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key9, { addDigit(KEY_9) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration) { addDigit(KEY_9) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key4, { addDigit(KEY_4) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration) { addDigit(KEY_4) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key5, { addDigit(KEY_5) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration) { addDigit(KEY_5) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key6, { addDigit(KEY_6) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration) { addDigit(KEY_6) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key1, { addDigit(KEY_1) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration) { addDigit(KEY_1) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key2, { addDigit(KEY_2) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration) { addDigit(KEY_2) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key3, { addDigit(KEY_3) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration) { addDigit(KEY_3) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key0, { addDigit(KEY_0) }, allowVibration = allowVibration)
|
KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration) { addDigit(KEY_0) }
|
||||||
KeyboardButtonLight(
|
KeyboardButtonLight(Modifier.fillMaxSize().weight(2f).padding(4.dp), UnittoIcons.Delete, allowVibration, clearInput) { deleteDigit() }
|
||||||
Modifier
|
|
||||||
.fillMaxSize()
|
|
||||||
.weight(2f)
|
|
||||||
.padding(4.dp),
|
|
||||||
UnittoIcons.Delete,
|
|
||||||
allowVibration = allowVibration,
|
|
||||||
onClick = { deleteDigit() },
|
|
||||||
onLongClick = clearInput
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,29 +71,23 @@ internal fun EpochKeyboard(
|
|||||||
.weight(2f)
|
.weight(2f)
|
||||||
.padding(4.dp)
|
.padding(4.dp)
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key7, allowVibration = false, onClick = { addSymbol(KEY_7) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key7, false) { addSymbol(KEY_7) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key8, allowVibration = false, onClick = { addSymbol(KEY_8) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key8, false) { addSymbol(KEY_8) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key9, allowVibration = false, onClick = { addSymbol(KEY_9) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key9, false) { addSymbol(KEY_9) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key4, allowVibration = false, onClick = { addSymbol(KEY_4) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key4, false) { addSymbol(KEY_4) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key5, allowVibration = false, onClick = { addSymbol(KEY_5) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key5, false) { addSymbol(KEY_5) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key6, allowVibration = false, onClick = { addSymbol(KEY_6) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key6, false) { addSymbol(KEY_6) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key1, allowVibration = false, onClick = { addSymbol(KEY_1) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key1, false) { addSymbol(KEY_1) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key2, allowVibration = false, onClick = { addSymbol(KEY_2) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key2, false) { addSymbol(KEY_2) }
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key3, allowVibration = false, onClick = { addSymbol(KEY_3) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key3, false) { addSymbol(KEY_3) }
|
||||||
}
|
}
|
||||||
Row(cModifier) {
|
Row(cModifier) {
|
||||||
KeyboardButtonLight(bModifier, UnittoIcons.Key0, allowVibration = false, onClick = { addSymbol(KEY_0) })
|
KeyboardButtonLight(bModifier, UnittoIcons.Key0, false) { addSymbol(KEY_0) }
|
||||||
KeyboardButtonLight(
|
KeyboardButtonLight(dModifier, UnittoIcons.Delete, false, clearSymbols) { deleteSymbol() }
|
||||||
dModifier,
|
|
||||||
UnittoIcons.Delete,
|
|
||||||
allowVibration = false,
|
|
||||||
onClick = { deleteSymbol() },
|
|
||||||
onLongClick = clearSymbols
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user