mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 00:35:26 +02:00
parent
e90c30a695
commit
0e0a545ee1
@ -1,4 +1,22 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ Unitto is a unit converter for Android
|
||||||
|
~ Copyright (c) 2024 Elshan Agaev
|
||||||
|
~
|
||||||
|
~ This program is free software: you can redistribute it and/or modify
|
||||||
|
~ it under the terms of the GNU General Public License as published by
|
||||||
|
~ the Free Software Foundation, either version 3 of the License, or
|
||||||
|
~ (at your option) any later version.
|
||||||
|
~
|
||||||
|
~ This program is distributed in the hope that it will be useful,
|
||||||
|
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
~ GNU General Public License for more details.
|
||||||
|
~
|
||||||
|
~ You should have received a copy of the GNU General Public License
|
||||||
|
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<!-- https://s3.eu-west-1.amazonaws.com/po-pub/i/QNmUuI88wb1Fm5P8wRIZajZF.png -->
|
<!-- https://s3.eu-west-1.amazonaws.com/po-pub/i/QNmUuI88wb1Fm5P8wRIZajZF.png -->
|
||||||
@ -34,6 +52,7 @@
|
|||||||
<string name="clear_input_description">Clear input</string>
|
<string name="clear_input_description">Clear input</string>
|
||||||
<string name="clear_label">Clear</string>
|
<string name="clear_label">Clear</string>
|
||||||
<string name="click_to_try_again_label">Click to try again</string>
|
<string name="click_to_try_again_label">Click to try again</string>
|
||||||
|
<string name="comma">Comma</string>
|
||||||
<string name="converter_favorite_button_description">Add or remove unit from favorites</string>
|
<string name="converter_favorite_button_description">Add or remove unit from favorites</string>
|
||||||
<string name="converter_left_side_title">Convert from</string>
|
<string name="converter_left_side_title">Convert from</string>
|
||||||
<string name="converter_no_results_support">Make sure there are no typos, try different filters or check for disabled unit groups.</string>
|
<string name="converter_no_results_support">Make sure there are no typos, try different filters or check for disabled unit groups.</string>
|
||||||
@ -73,6 +92,98 @@
|
|||||||
<string name="error_label">Error</string>
|
<string name="error_label">Error</string>
|
||||||
<string name="hello_label">Hello!</string>
|
<string name="hello_label">Hello!</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_actan">Arctangent</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_arcos">Arccosine</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_arsin">Arcsine</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_brackets">Brackets</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_cos">Cosine</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_degree">Degree</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_divide">Divide</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_dot">Dot</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_equal">Equal</string>
|
||||||
|
|
||||||
|
<!-- https://en.wikipedia.org/wiki/E_(mathematical_constant) -->
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<!-- Fuzzy -->
|
||||||
|
<string name="keyboard_euler">Euler\'s number</string>
|
||||||
|
|
||||||
|
<!-- https://en.wikipedia.org/wiki/Exponential_function -->
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_exp">Exponential function</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_factorial">Factorial</string>
|
||||||
|
|
||||||
|
<!-- It's ok not to use exact translation here -->
|
||||||
|
<!-- Screen readers (accessibility). The INV button -->
|
||||||
|
<string name="keyboard_inverse">Inverse</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_left_bracket">Left bracket</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_ln">Natural logarithm</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_log">Logarithm</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_minus">Minus</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_modulo">Modulo</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_multiply">Multiply</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_percent">Percent</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_pi">Pi</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_plus">Plus</string>
|
||||||
|
|
||||||
|
<!-- Exponent or Power, same thing -->
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_power">Power</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_power_10">Power of 10</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_radian">Radian</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_right_bracket">Right bracket</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_root">Square root</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_sin">Sine</string>
|
||||||
|
|
||||||
|
<!-- Screen readers (accessibility) -->
|
||||||
|
<string name="keyboard_tan">Tangent</string>
|
||||||
|
|
||||||
<!-- https://s3.eu-west-1.amazonaws.com/po-pub/i/iqEp9rZZ9XqtJ3CKVpy33lre.png -->
|
<!-- https://s3.eu-west-1.amazonaws.com/po-pub/i/iqEp9rZZ9XqtJ3CKVpy33lre.png -->
|
||||||
<string name="label_label">Label</string>
|
<string name="label_label">Label</string>
|
||||||
<string name="loading_label">Loading…</string>
|
<string name="loading_label">Loading…</string>
|
||||||
@ -130,7 +241,6 @@ Alternatively you can use "Export" -->
|
|||||||
<string name="settings_color_scheme">Color scheme</string>
|
<string name="settings_color_scheme">Color scheme</string>
|
||||||
<string name="settings_color_theme">Color theme</string>
|
<string name="settings_color_theme">Color theme</string>
|
||||||
<string name="settings_color_theme_support">Pick a theming mode</string>
|
<string name="settings_color_theme_support">Pick a theming mode</string>
|
||||||
<string name="settings_comma">Comma</string>
|
|
||||||
<string name="settings_converter_support">Unit groups, sorting, formatting</string>
|
<string name="settings_converter_support">Unit groups, sorting, formatting</string>
|
||||||
<string name="settings_currency_rates_note_text">Currency rates are updated daily. There\'s no real-time market monitoring in the app</string>
|
<string name="settings_currency_rates_note_text">Currency rates are updated daily. There\'s no real-time market monitoring in the app</string>
|
||||||
<string name="settings_currency_rates_note_title">Wrong currency rates?</string>
|
<string name="settings_currency_rates_note_title">Wrong currency rates?</string>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Unitto is a unit converter for Android
|
* Unitto is a unit converter for Android
|
||||||
* Copyright (c) 2022-2023 Elshan Agaev
|
* Copyright (c) 2022-2024 Elshan Agaev
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -46,6 +46,7 @@ fun BasicKeyboardButton(
|
|||||||
onLongClick: (() -> Unit)?,
|
onLongClick: (() -> Unit)?,
|
||||||
containerColor: Color,
|
containerColor: Color,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
contentDescription: String?,
|
||||||
iconColor: Color,
|
iconColor: Color,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
) {
|
) {
|
||||||
@ -74,7 +75,7 @@ fun BasicKeyboardButton(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = icon,
|
imageVector = icon,
|
||||||
contentDescription = null,
|
contentDescription = contentDescription,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.aspectRatio(1f) // All icons are square (24x24)
|
.aspectRatio(1f) // All icons are square (24x24)
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
@ -91,6 +92,7 @@ fun BasicKeyboardButton(
|
|||||||
fun KeyboardButtonLight(
|
fun KeyboardButtonLight(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
contentDescription: String?,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
contentHeight: Float,
|
contentHeight: Float,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
@ -103,6 +105,7 @@ fun KeyboardButtonLight(
|
|||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
containerColor = MaterialTheme.colorScheme.inverseOnSurface,
|
containerColor = MaterialTheme.colorScheme.inverseOnSurface,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
|
contentDescription = contentDescription,
|
||||||
iconColor = MaterialTheme.colorScheme.onSurfaceVariant,
|
iconColor = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
)
|
)
|
||||||
@ -112,6 +115,7 @@ fun KeyboardButtonLight(
|
|||||||
fun KeyboardButtonFilled(
|
fun KeyboardButtonFilled(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
contentDescription: String?,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
contentHeight: Float,
|
contentHeight: Float,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
@ -124,6 +128,7 @@ fun KeyboardButtonFilled(
|
|||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
containerColor = MaterialTheme.colorScheme.primaryContainer,
|
containerColor = MaterialTheme.colorScheme.primaryContainer,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
|
contentDescription = contentDescription,
|
||||||
iconColor = MaterialTheme.colorScheme.onPrimaryContainer,
|
iconColor = MaterialTheme.colorScheme.onPrimaryContainer,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
)
|
)
|
||||||
@ -133,6 +138,7 @@ fun KeyboardButtonFilled(
|
|||||||
fun KeyboardButtonAdditional(
|
fun KeyboardButtonAdditional(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
contentDescription: String?,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
contentHeight: Float,
|
contentHeight: Float,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
@ -145,6 +151,7 @@ fun KeyboardButtonAdditional(
|
|||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
|
contentDescription = contentDescription,
|
||||||
iconColor = MaterialTheme.colorScheme.onSurfaceVariant,
|
iconColor = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
)
|
)
|
||||||
@ -154,6 +161,7 @@ fun KeyboardButtonAdditional(
|
|||||||
fun KeyboardButtonTertiary(
|
fun KeyboardButtonTertiary(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
icon: ImageVector,
|
icon: ImageVector,
|
||||||
|
contentDescription: String?,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
contentHeight: Float,
|
contentHeight: Float,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
@ -166,6 +174,7 @@ fun KeyboardButtonTertiary(
|
|||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
|
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
|
contentDescription = contentDescription,
|
||||||
iconColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
iconColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
)
|
)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Unitto is a unit converter for Android
|
* Unitto is a unit converter for Android
|
||||||
* Copyright (c) 2023 Elshan Agaev
|
* Copyright (c) 2023-2024 Elshan Agaev
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -119,10 +119,10 @@ private fun RPNCalculatorKeyboardPortrait(
|
|||||||
.fillMaxWidth(width)
|
.fillMaxWidth(width)
|
||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
|
|
||||||
KeyboardButtonAdditional(aModifier, IconPack.Swap, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Swap) }
|
KeyboardButtonAdditional(aModifier, IconPack.Swap, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Swap) }
|
||||||
KeyboardButtonAdditional(aModifier, IconPack.Up, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateUp) }
|
KeyboardButtonAdditional(aModifier, IconPack.Up, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateUp) }
|
||||||
KeyboardButtonAdditional(aModifier, IconPack.Down, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateDown) }
|
KeyboardButtonAdditional(aModifier, IconPack.Down, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateDown) }
|
||||||
KeyboardButtonAdditional(aModifier, IconPack.Pop, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Pop) }
|
KeyboardButtonAdditional(aModifier, IconPack.Pop, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Pop) }
|
||||||
}
|
}
|
||||||
|
|
||||||
KeypadFlow(
|
KeypadFlow(
|
||||||
@ -134,35 +134,35 @@ private fun RPNCalculatorKeyboardPortrait(
|
|||||||
.fillMaxWidth(width)
|
.fillMaxWidth(width)
|
||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
|
|
||||||
KeyboardButtonTertiary(bModifier, IconPack.Clear, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Clear) }
|
KeyboardButtonTertiary(bModifier, IconPack.Clear, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Clear) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Unary, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Negate) }
|
KeyboardButtonFilled(bModifier, IconPack.Unary, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Negate) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Percent, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Percent) }
|
KeyboardButtonFilled(bModifier, IconPack.Percent, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Percent) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Divide, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Divide) }
|
KeyboardButtonFilled(bModifier, IconPack.Divide, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Divide) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key7, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._7)) }
|
KeyboardButtonLight(bModifier, IconPack.Key7, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._7)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key8, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._8)) }
|
KeyboardButtonLight(bModifier, IconPack.Key8, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._8)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key9, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._9)) }
|
KeyboardButtonLight(bModifier, IconPack.Key9, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._9)) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Multiply, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Multiply) }
|
KeyboardButtonFilled(bModifier, IconPack.Multiply, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Multiply) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key4, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._4)) }
|
KeyboardButtonLight(bModifier, IconPack.Key4, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._4)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key5, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._5)) }
|
KeyboardButtonLight(bModifier, IconPack.Key5, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._5)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key6, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._6)) }
|
KeyboardButtonLight(bModifier, IconPack.Key6, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._6)) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Minus, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Minus) }
|
KeyboardButtonFilled(bModifier, IconPack.Minus, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Minus) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key1, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._1)) }
|
KeyboardButtonLight(bModifier, IconPack.Key1, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._1)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key2, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._2)) }
|
KeyboardButtonLight(bModifier, IconPack.Key2, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._2)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key3, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._3)) }
|
KeyboardButtonLight(bModifier, IconPack.Key3, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._3)) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Plus, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Plus) }
|
KeyboardButtonFilled(bModifier, IconPack.Plus, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Plus) }
|
||||||
|
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Dot) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(bModifier, IconPack.Backspace, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Delete) }
|
KeyboardButtonLight(bModifier, IconPack.Backspace, null, allowVibration, KeyboardButtonContentHeightTall) { onInputEditClick(RPNInputEdit.Delete) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Enter, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Enter) }
|
KeyboardButtonFilled(bModifier, IconPack.Enter, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Enter) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -185,38 +185,38 @@ private fun RPNCalculatorKeyboardLandscape(
|
|||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
.fillMaxWidth(width)
|
.fillMaxWidth(width)
|
||||||
|
|
||||||
KeyboardButtonAdditional(bModifier, IconPack.Swap, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Swap) }
|
KeyboardButtonAdditional(bModifier, IconPack.Swap, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Swap) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key7, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._7)) }
|
KeyboardButtonLight(bModifier, IconPack.Key7, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._7)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key8, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._8)) }
|
KeyboardButtonLight(bModifier, IconPack.Key8, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._8)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key9, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._9)) }
|
KeyboardButtonLight(bModifier, IconPack.Key9, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._9)) }
|
||||||
KeyboardButtonTertiary(bModifier, IconPack.Clear, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Clear) }
|
KeyboardButtonTertiary(bModifier, IconPack.Clear, null, allowVibration, KeyboardButtonContentHeightTall) { onCalculationClick(RPNCalculation.Clear) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Unary, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Negate) }
|
KeyboardButtonFilled(bModifier, IconPack.Unary, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Negate) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(bModifier, IconPack.Up, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateUp) }
|
KeyboardButtonAdditional(bModifier, IconPack.Up, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateUp) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key4, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._4)) }
|
KeyboardButtonLight(bModifier, IconPack.Key4, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._4)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key5, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._5)) }
|
KeyboardButtonLight(bModifier, IconPack.Key5, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._5)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key6, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._6)) }
|
KeyboardButtonLight(bModifier, IconPack.Key6, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._6)) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Multiply, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Multiply) }
|
KeyboardButtonFilled(bModifier, IconPack.Multiply, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Multiply) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Divide, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Divide) }
|
KeyboardButtonFilled(bModifier, IconPack.Divide, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Divide) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(bModifier, IconPack.Down, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateDown) }
|
KeyboardButtonAdditional(bModifier, IconPack.Down, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.RotateDown) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key1, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._1)) }
|
KeyboardButtonLight(bModifier, IconPack.Key1, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._1)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key2, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._2)) }
|
KeyboardButtonLight(bModifier, IconPack.Key2, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._2)) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key3, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._3)) }
|
KeyboardButtonLight(bModifier, IconPack.Key3, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._3)) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Plus, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Plus) }
|
KeyboardButtonFilled(bModifier, IconPack.Plus, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Plus) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Minus, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Minus) }
|
KeyboardButtonFilled(bModifier, IconPack.Minus, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Minus) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(bModifier, IconPack.Pop, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Pop) }
|
KeyboardButtonAdditional(bModifier, IconPack.Pop, null, allowVibration, KeyboardButtonContentHeightTallAdditional) { onCalculationClick(RPNCalculation.Pop) }
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Dot) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Digit(Token.Digit._0)) }
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(bModifier, IconPack.Backspace, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Delete) }
|
KeyboardButtonLight(bModifier, IconPack.Backspace, null, allowVibration, KeyboardButtonContentHeightShort) { onInputEditClick(RPNInputEdit.Delete) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Percent, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Percent) }
|
KeyboardButtonFilled(bModifier, IconPack.Percent, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Percent) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Enter, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Enter) }
|
KeyboardButtonFilled(bModifier, IconPack.Enter, null, allowVibration, KeyboardButtonContentHeightShort) { onCalculationClick(RPNCalculation.Enter) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Unitto is a unit converter for Android
|
* Unitto is a unit converter for Android
|
||||||
* Copyright (c) 2023 Elshan Agaev
|
* Copyright (c) 2023-2024 Elshan Agaev
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -50,9 +50,10 @@ import androidx.compose.runtime.setValue
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.rotate
|
import androidx.compose.ui.draw.rotate
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
|
import com.sadellie.unitto.core.base.R
|
||||||
import com.sadellie.unitto.core.base.Token
|
import com.sadellie.unitto.core.base.Token
|
||||||
import com.sadellie.unitto.core.ui.LocalWindowSize
|
import com.sadellie.unitto.core.ui.LocalWindowSize
|
||||||
import com.sadellie.unitto.core.ui.WindowHeightSizeClass
|
import com.sadellie.unitto.core.ui.WindowHeightSizeClass
|
||||||
@ -109,6 +110,7 @@ import com.sadellie.unitto.core.ui.common.icons.iconpack.RightBracket
|
|||||||
import com.sadellie.unitto.core.ui.common.icons.iconpack.Root
|
import com.sadellie.unitto.core.ui.common.icons.iconpack.Root
|
||||||
import com.sadellie.unitto.core.ui.common.icons.iconpack.Sin
|
import com.sadellie.unitto.core.ui.common.icons.iconpack.Sin
|
||||||
import com.sadellie.unitto.core.ui.common.icons.iconpack.Tan
|
import com.sadellie.unitto.core.ui.common.icons.iconpack.Tan
|
||||||
|
import com.sadellie.unitto.core.ui.common.textfield.FormatterSymbols
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun CalculatorKeyboard(
|
internal fun CalculatorKeyboard(
|
||||||
@ -125,15 +127,13 @@ internal fun CalculatorKeyboard(
|
|||||||
toggleAngleMode: () -> Unit,
|
toggleAngleMode: () -> Unit,
|
||||||
equal: () -> Unit
|
equal: () -> Unit
|
||||||
) {
|
) {
|
||||||
val fractionalIcon = remember(fractional) { if (fractional == Token.Digit.dot) IconPack.Dot else IconPack.Comma }
|
|
||||||
val angleIcon = remember(radianMode) { if (radianMode) IconPack.Rad else IconPack.Deg }
|
|
||||||
var invMode: Boolean by remember { mutableStateOf(false) }
|
var invMode: Boolean by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
if (LocalWindowSize.current.heightSizeClass < WindowHeightSizeClass.Medium) {
|
if (LocalWindowSize.current.heightSizeClass < WindowHeightSizeClass.Medium) {
|
||||||
LandscapeKeyboard(
|
LandscapeKeyboard(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
angleIcon = angleIcon,
|
radianMode = radianMode,
|
||||||
fractionalIcon = fractionalIcon,
|
fractional = fractional,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
middleZero = middleZero,
|
middleZero = middleZero,
|
||||||
addSymbol = addSymbol,
|
addSymbol = addSymbol,
|
||||||
@ -149,8 +149,8 @@ internal fun CalculatorKeyboard(
|
|||||||
} else {
|
} else {
|
||||||
PortraitKeyboard(
|
PortraitKeyboard(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
angleIcon = angleIcon,
|
radianMode = radianMode,
|
||||||
fractionalIcon = fractionalIcon,
|
fractional = fractional,
|
||||||
allowVibration = allowVibration,
|
allowVibration = allowVibration,
|
||||||
middleZero = middleZero,
|
middleZero = middleZero,
|
||||||
addSymbol = addSymbol,
|
addSymbol = addSymbol,
|
||||||
@ -169,8 +169,8 @@ internal fun CalculatorKeyboard(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun PortraitKeyboard(
|
private fun PortraitKeyboard(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
angleIcon: ImageVector,
|
radianMode: Boolean,
|
||||||
fractionalIcon: ImageVector,
|
fractional: String,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
middleZero: Boolean,
|
middleZero: Boolean,
|
||||||
addSymbol: (String) -> Unit,
|
addSymbol: (String) -> Unit,
|
||||||
@ -183,6 +183,12 @@ private fun PortraitKeyboard(
|
|||||||
invMode: Boolean,
|
invMode: Boolean,
|
||||||
toggleInvMode: () -> Unit,
|
toggleInvMode: () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val angleIcon = remember(radianMode) { if (radianMode) IconPack.Rad else IconPack.Deg }
|
||||||
|
val angleIconDescription = remember(radianMode) { if (radianMode) R.string.keyboard_radian else R.string.keyboard_degree }
|
||||||
|
|
||||||
|
val fractionalIcon = remember(fractional) { if (fractional == Token.Digit.dot) IconPack.Dot else IconPack.Comma }
|
||||||
|
val fractionalIconDescription = remember(fractional) { if (fractional == Token.Digit.dot) R.string.keyboard_dot else R.string.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) 180f else 0f,
|
targetValue = if (showAdditional) 180f else 0f,
|
||||||
@ -216,21 +222,21 @@ private fun PortraitKeyboard(
|
|||||||
showAdditional = showAdditional,
|
showAdditional = showAdditional,
|
||||||
buttonHeight = additionalButtonHeight,
|
buttonHeight = additionalButtonHeight,
|
||||||
content1 = { buttonModifier ->
|
content1 = { buttonModifier ->
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Modulo, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.modulo) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Modulo, stringResource(R.string.keyboard_modulo), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.modulo) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.pi) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, stringResource(R.string.keyboard_pi), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.pi) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power, stringResource(R.string.keyboard_power), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.power) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.factorial) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, stringResource(R.string.keyboard_factorial), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.factorial) }
|
||||||
},
|
},
|
||||||
content2 = { buttonModifier ->
|
content2 = { buttonModifier ->
|
||||||
KeyboardButtonAdditional(buttonModifier, angleIcon, allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleAngleMode() }
|
KeyboardButtonAdditional(buttonModifier, angleIcon, stringResource(angleIconDescription), allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.ArSin, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.arsinBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.ArSin, stringResource(R.string.keyboard_arsin), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.arsinBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.ArCos, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.arcosBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.ArCos, stringResource(R.string.keyboard_arcos), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.arcosBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.AcTan, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.actanBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.AcTan, stringResource(R.string.keyboard_actan), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.actanBracket) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleInvMode() }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, stringResource(R.string.keyboard_inverse), allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleInvMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.e) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, stringResource(R.string.keyboard_euler), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.e) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Ex, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.expBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Ex, stringResource(R.string.keyboard_exp), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.expBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power10, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Digit._1 + Token.Digit._0 + Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power10, stringResource(R.string.keyboard_power_10), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Digit._1 + Token.Digit._0 + Token.Operator.power) }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
@ -239,21 +245,21 @@ private fun PortraitKeyboard(
|
|||||||
showAdditional = showAdditional,
|
showAdditional = showAdditional,
|
||||||
buttonHeight = additionalButtonHeight,
|
buttonHeight = additionalButtonHeight,
|
||||||
content1 = { buttonModifier ->
|
content1 = { buttonModifier ->
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Root, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.sqrt) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Root, stringResource(R.string.keyboard_root), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.sqrt) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.pi) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, stringResource(R.string.keyboard_pi), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.pi) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power, stringResource(R.string.keyboard_power), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.power) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.factorial) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, stringResource(R.string.keyboard_factorial), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Operator.factorial) }
|
||||||
},
|
},
|
||||||
content2 = { buttonModifier ->
|
content2 = { buttonModifier ->
|
||||||
KeyboardButtonAdditional(buttonModifier, angleIcon, allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleAngleMode() }
|
KeyboardButtonAdditional(buttonModifier, angleIcon, stringResource(angleIconDescription), allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Sin, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.sinBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Sin, stringResource(R.string.keyboard_sin), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.sinBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Cos, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.cosBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Cos, stringResource(R.string.keyboard_cos), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.cosBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Tan, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.tanBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Tan, stringResource(R.string.keyboard_tan), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.tanBracket) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleInvMode() }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, stringResource(R.string.keyboard_inverse), allowVibration, KeyboardButtonContentHeightTallAdditional) { toggleInvMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.e) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, stringResource(R.string.keyboard_exp), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Const.e) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Ln, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.lnBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Ln, stringResource(R.string.keyboard_ln), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.lnBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Log, allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.logBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Log, stringResource(R.string.keyboard_log), allowVibration, KeyboardButtonContentHeightTallAdditional) { addSymbol(Token.Func.logBracket) }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -286,39 +292,39 @@ private fun PortraitKeyboard(
|
|||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
|
|
||||||
if (acButton) {
|
if (acButton) {
|
||||||
KeyboardButtonTertiary(mainButtonModifier, IconPack.Clear, allowVibration, KeyboardButtonContentHeightTall) { clearSymbols() }
|
KeyboardButtonTertiary(mainButtonModifier, IconPack.Clear, stringResource(R.string.clear_label), allowVibration, KeyboardButtonContentHeightTall) { clearSymbols() }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Brackets, allowVibration, KeyboardButtonContentHeightTall) { addBracket() }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Brackets, stringResource(R.string.keyboard_brackets), allowVibration, KeyboardButtonContentHeightTall) { addBracket() }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.LeftBracket, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.leftBracket) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.LeftBracket, stringResource(R.string.keyboard_left_bracket), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.leftBracket) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.RightBracket, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.rightBracket) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.RightBracket, stringResource(R.string.keyboard_right_bracket), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.rightBracket) }
|
||||||
}
|
}
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Percent, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.percent) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Percent, stringResource(R.string.keyboard_percent), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.percent) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Divide, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.divide) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Divide, stringResource(R.string.keyboard_divide), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.divide) }
|
||||||
|
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key7, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._7) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key7, Token.Digit._7, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._7) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key8, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._8) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key8, Token.Digit._8, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._8) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key9, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._9) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key9, Token.Digit._9, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._9) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Multiply, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.multiply) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Multiply, stringResource(R.string.keyboard_multiply), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.multiply) }
|
||||||
|
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key4, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._4) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key4, Token.Digit._4, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._4) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key5, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._5) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key5, Token.Digit._5, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._5) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key6, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._6) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key6, Token.Digit._6, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._6) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Minus, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.minus) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Minus, stringResource(R.string.keyboard_minus), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.minus) }
|
||||||
|
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key1, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._1) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key1, Token.Digit._1, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._1) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key2, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._2) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key2, Token.Digit._2, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._2) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key3, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._3) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key3, Token.Digit._3, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._3) }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Plus, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.plus) }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Plus, stringResource(R.string.keyboard_plus), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Operator.plus) }
|
||||||
|
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(mainButtonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(mainButtonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit.dot) }
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._0) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit._0) }
|
||||||
KeyboardButtonLight(mainButtonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(mainButtonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightTall) { addSymbol(Token.Digit.dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(mainButtonModifier, IconPack.Backspace, allowVibration, KeyboardButtonContentHeightTall, clearSymbols) { deleteSymbol() }
|
KeyboardButtonLight(mainButtonModifier, IconPack.Backspace, stringResource(R.string.delete_label), allowVibration, KeyboardButtonContentHeightTall, clearSymbols) { deleteSymbol() }
|
||||||
KeyboardButtonFilled(mainButtonModifier, IconPack.Equal, allowVibration, KeyboardButtonContentHeightTall) { equal() }
|
KeyboardButtonFilled(mainButtonModifier, IconPack.Equal, stringResource(R.string.keyboard_equal), allowVibration, KeyboardButtonContentHeightTall) { equal() }
|
||||||
}
|
}
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(spacerHeight))
|
Spacer(modifier = Modifier.height(spacerHeight))
|
||||||
@ -396,8 +402,8 @@ private fun AdditionalPortrait(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun LandscapeKeyboard(
|
private fun LandscapeKeyboard(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
angleIcon: ImageVector,
|
radianMode: Boolean,
|
||||||
fractionalIcon: ImageVector,
|
fractional: String,
|
||||||
allowVibration: Boolean,
|
allowVibration: Boolean,
|
||||||
middleZero: Boolean,
|
middleZero: Boolean,
|
||||||
addSymbol: (String) -> Unit,
|
addSymbol: (String) -> Unit,
|
||||||
@ -410,6 +416,12 @@ private fun LandscapeKeyboard(
|
|||||||
invMode: Boolean,
|
invMode: Boolean,
|
||||||
toggleInvMode: () -> Unit,
|
toggleInvMode: () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val angleIcon = remember(radianMode) { if (radianMode) IconPack.Rad else IconPack.Deg }
|
||||||
|
val angleIconDescription = remember(radianMode) { if (radianMode) R.string.keyboard_radian else R.string.keyboard_degree }
|
||||||
|
|
||||||
|
val fractionalIcon = remember(fractional) { if (fractional == Token.Digit.dot) IconPack.Dot else IconPack.Comma }
|
||||||
|
val fractionalIconDescription = remember(fractional) { if (fractional == Token.Digit.dot) R.string.keyboard_dot else R.string.comma }
|
||||||
|
|
||||||
Crossfade(
|
Crossfade(
|
||||||
targetState = invMode,
|
targetState = invMode,
|
||||||
label = "Inverse switch",
|
label = "Inverse switch",
|
||||||
@ -425,51 +437,51 @@ private fun LandscapeKeyboard(
|
|||||||
.fillMaxWidth(width)
|
.fillMaxWidth(width)
|
||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, angleIcon, allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleAngleMode() }
|
KeyboardButtonAdditional(buttonModifier, angleIcon, stringResource(angleIconDescription), allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Modulo, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.modulo) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Modulo, stringResource(R.string.keyboard_modulo), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.modulo) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.pi) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, stringResource(R.string.keyboard_pi), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.pi) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key7, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._7) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key7, Token.Digit._7, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._7) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key8, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._8) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key8, Token.Digit._8, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._8) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key9, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._9) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key9, Token.Digit._9, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._9) }
|
||||||
if (acButton) {
|
if (acButton) {
|
||||||
KeyboardButtonTertiary(buttonModifier, IconPack.Clear, allowVibration, KeyboardButtonContentHeightShort) { clearSymbols() }
|
KeyboardButtonTertiary(buttonModifier, IconPack.Clear, stringResource(R.string.clear_label), allowVibration, KeyboardButtonContentHeightShort) { clearSymbols() }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Brackets, allowVibration, KeyboardButtonContentHeightShort) { addBracket() }
|
KeyboardButtonFilled(buttonModifier, IconPack.Brackets, stringResource(R.string.keyboard_brackets), allowVibration, KeyboardButtonContentHeightShort) { addBracket() }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.LeftBracket, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.leftBracket) }
|
KeyboardButtonFilled(buttonModifier, IconPack.LeftBracket, stringResource(R.string.keyboard_left_bracket), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.leftBracket) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.RightBracket, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.rightBracket) }
|
KeyboardButtonFilled(buttonModifier, IconPack.RightBracket, stringResource(R.string.keyboard_right_bracket), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.rightBracket) }
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleInvMode() }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, stringResource(R.string.keyboard_inverse), allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleInvMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power, stringResource(R.string.keyboard_power), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.power) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.factorial) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, stringResource(R.string.keyboard_factorial), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.factorial) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key4, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._4) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key4, Token.Digit._4, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._4) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key5, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._5) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key5, Token.Digit._5, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._5) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key6, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._6) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key6, Token.Digit._6, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._6) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Multiply, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.multiply) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Multiply, stringResource(R.string.keyboard_multiply), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.multiply) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Divide, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.divide) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Divide, stringResource(R.string.keyboard_divide), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.divide) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.ArSin, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.arsinBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.ArSin, stringResource(R.string.keyboard_arsin), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.arsinBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.ArCos, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.arcosBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.ArCos, stringResource(R.string.keyboard_arcos), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.arcosBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.AcTan, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.actanBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.AcTan, stringResource(R.string.keyboard_actan), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.actanBracket) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key1, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._1) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key1, Token.Digit._1, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._1) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key2, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._2) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key2, Token.Digit._2, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._2) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key3, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._3) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key3, Token.Digit._3, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._3) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Minus, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.minus) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Minus, stringResource(R.string.keyboard_minus), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.minus) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Percent, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.percent) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Percent, stringResource(R.string.keyboard_percent), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.percent) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.e) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, stringResource(R.string.keyboard_euler), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.e) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Ex, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.expBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Ex, stringResource(R.string.keyboard_exp), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.expBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power10, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Digit._1 + Token.Digit._0 + Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power10, stringResource(R.string.keyboard_power_10), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Digit._1 + Token.Digit._0 + Token.Operator.power) }
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(buttonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
||||||
KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(buttonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Backspace, allowVibration, KeyboardButtonContentHeightShort, clearSymbols) { deleteSymbol() }
|
KeyboardButtonLight(buttonModifier, IconPack.Backspace, stringResource(R.string.delete_label), allowVibration, KeyboardButtonContentHeightShort, clearSymbols) { deleteSymbol() }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Plus, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.plus) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Plus, stringResource(R.string.keyboard_plus), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.plus) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Equal, allowVibration, KeyboardButtonContentHeightShort) { equal() }
|
KeyboardButtonFilled(buttonModifier, IconPack.Equal, stringResource(R.string.keyboard_equal), allowVibration, KeyboardButtonContentHeightShort) { equal() }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
KeypadFlow(
|
KeypadFlow(
|
||||||
@ -481,51 +493,51 @@ private fun LandscapeKeyboard(
|
|||||||
.fillMaxWidth(width)
|
.fillMaxWidth(width)
|
||||||
.fillMaxHeight(height)
|
.fillMaxHeight(height)
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, angleIcon, allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleAngleMode() }
|
KeyboardButtonAdditional(buttonModifier, angleIcon, stringResource(angleIconDescription), allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleAngleMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Root, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.sqrt) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Root, stringResource(R.string.keyboard_root), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.sqrt) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.pi) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Pi, stringResource(R.string.keyboard_pi), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.pi) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key7, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._7) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key7, Token.Digit._7, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._7) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key8, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._8) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key8, Token.Digit._8, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._8) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key9, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._9) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key9, Token.Digit._9, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._9) }
|
||||||
if (acButton) {
|
if (acButton) {
|
||||||
KeyboardButtonTertiary(buttonModifier, IconPack.Clear, allowVibration, KeyboardButtonContentHeightShort) { clearSymbols() }
|
KeyboardButtonTertiary(buttonModifier, IconPack.Clear, stringResource(R.string.clear_label), allowVibration, KeyboardButtonContentHeightShort) { clearSymbols() }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Brackets, allowVibration, KeyboardButtonContentHeightShort) { addBracket() }
|
KeyboardButtonFilled(buttonModifier, IconPack.Brackets, stringResource(R.string.keyboard_brackets), allowVibration, KeyboardButtonContentHeightShort) { addBracket() }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.LeftBracket, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.leftBracket) }
|
KeyboardButtonFilled(buttonModifier, IconPack.LeftBracket, stringResource(R.string.keyboard_left_bracket), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.leftBracket) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.RightBracket, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.rightBracket) }
|
KeyboardButtonFilled(buttonModifier, IconPack.RightBracket, stringResource(R.string.keyboard_right_bracket), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.rightBracket) }
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleInvMode() }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Inv, stringResource(R.string.keyboard_inverse), allowVibration, KeyboardButtonContentHeightShortAdditional) { toggleInvMode() }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Power, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.power) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Power, stringResource(R.string.keyboard_power), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.power) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.factorial) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Factorial, stringResource(R.string.keyboard_factorial), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Operator.factorial) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key4, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._4) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key4, Token.Digit._4, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._4) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key5, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._5) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key5, Token.Digit._5, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._5) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key6, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._6) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key6, Token.Digit._6, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._6) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Multiply, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.multiply) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Multiply, stringResource(R.string.keyboard_multiply), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.multiply) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Divide, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.divide) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Divide, stringResource(R.string.keyboard_divide), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.divide) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Sin, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.sinBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Sin, stringResource(R.string.keyboard_sin), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.sinBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Cos, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.cosBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Cos, stringResource(R.string.keyboard_cos), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.cosBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Tan, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.tanBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Tan, stringResource(R.string.keyboard_tan), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.tanBracket) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key1, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._1) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key1, Token.Digit._1, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._1) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key2, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._2) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key2, Token.Digit._2, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._2) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key3, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._3) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key3, Token.Digit._3, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._3) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Minus, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.minus) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Minus, stringResource(R.string.keyboard_minus), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.minus) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Percent, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.percent) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Percent, stringResource(R.string.keyboard_percent), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.percent) }
|
||||||
|
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.e) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Exponent, stringResource(R.string.keyboard_euler), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Const.e) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Ln, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.lnBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Ln, stringResource(R.string.keyboard_ln), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.lnBracket) }
|
||||||
KeyboardButtonAdditional(buttonModifier, IconPack.Log, allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.logBracket) }
|
KeyboardButtonAdditional(buttonModifier, IconPack.Log, stringResource(R.string.keyboard_log), allowVibration, KeyboardButtonContentHeightShortAdditional) { addSymbol(Token.Func.logBracket) }
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(buttonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Key0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
KeyboardButtonLight(buttonModifier, IconPack.Key0, Token.Digit._0, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit._0) }
|
||||||
KeyboardButtonLight(buttonModifier, fractionalIcon, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
KeyboardButtonLight(buttonModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Digit.dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(buttonModifier, IconPack.Backspace, allowVibration, KeyboardButtonContentHeightShort, clearSymbols) { deleteSymbol() }
|
KeyboardButtonLight(buttonModifier, IconPack.Backspace, stringResource(R.string.delete_label), allowVibration, KeyboardButtonContentHeightShort, clearSymbols) { deleteSymbol() }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Plus, allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.plus) }
|
KeyboardButtonFilled(buttonModifier, IconPack.Plus, stringResource(R.string.keyboard_plus), allowVibration, KeyboardButtonContentHeightShort) { addSymbol(Token.Operator.plus) }
|
||||||
KeyboardButtonFilled(buttonModifier, IconPack.Equal, allowVibration, KeyboardButtonContentHeightShort) { equal() }
|
KeyboardButtonFilled(buttonModifier, IconPack.Equal, stringResource(R.string.keyboard_equal), allowVibration, KeyboardButtonContentHeightShort) { equal() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -536,8 +548,8 @@ private fun LandscapeKeyboard(
|
|||||||
private fun PreviewPortraitKeyboard() {
|
private fun PreviewPortraitKeyboard() {
|
||||||
PortraitKeyboard(
|
PortraitKeyboard(
|
||||||
modifier = Modifier.fillMaxHeight(),
|
modifier = Modifier.fillMaxHeight(),
|
||||||
angleIcon = IconPack.Rad,
|
radianMode = true,
|
||||||
fractionalIcon = IconPack.Dot,
|
fractional = FormatterSymbols.Comma.fractional,
|
||||||
addSymbol = {},
|
addSymbol = {},
|
||||||
clearSymbols = {},
|
clearSymbols = {},
|
||||||
deleteSymbol = {},
|
deleteSymbol = {},
|
||||||
@ -557,8 +569,8 @@ private fun PreviewPortraitKeyboard() {
|
|||||||
private fun PreviewLandscapeKeyboard() {
|
private fun PreviewLandscapeKeyboard() {
|
||||||
LandscapeKeyboard(
|
LandscapeKeyboard(
|
||||||
modifier = Modifier.fillMaxHeight(),
|
modifier = Modifier.fillMaxHeight(),
|
||||||
angleIcon = IconPack.Rad,
|
radianMode = true,
|
||||||
fractionalIcon = IconPack.Dot,
|
fractional = FormatterSymbols.Comma.fractional,
|
||||||
addSymbol = {},
|
addSymbol = {},
|
||||||
clearSymbols = {},
|
clearSymbols = {},
|
||||||
deleteSymbol = {},
|
deleteSymbol = {},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Unitto is a unit converter for Android
|
* Unitto is a unit converter for Android
|
||||||
* Copyright (c) 2022-2023 Elshan Agaev
|
* Copyright (c) 2022-2024 Elshan Agaev
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -24,7 +24,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
import com.sadellie.unitto.core.base.R
|
||||||
import com.sadellie.unitto.core.base.Token
|
import com.sadellie.unitto.core.base.Token
|
||||||
import com.sadellie.unitto.core.ui.LocalWindowSize
|
import com.sadellie.unitto.core.ui.LocalWindowSize
|
||||||
import com.sadellie.unitto.core.ui.WindowHeightSizeClass
|
import com.sadellie.unitto.core.ui.WindowHeightSizeClass
|
||||||
@ -78,7 +80,8 @@ internal fun DefaultKeyboard(
|
|||||||
acButton: Boolean,
|
acButton: Boolean,
|
||||||
addBracket: () -> Unit,
|
addBracket: () -> Unit,
|
||||||
) {
|
) {
|
||||||
val fractionalIcon = remember { if (fractional == Token.Digit.dot) IconPack.Dot else IconPack.Comma }
|
val fractionalIcon = remember(fractional) { if (fractional == Token.Digit.dot) IconPack.Dot else IconPack.Comma }
|
||||||
|
val fractionalIconDescription = remember(fractional) { if (fractional == Token.Digit.dot) R.string.keyboard_dot else R.string.comma }
|
||||||
val contentHeight: Float = if (LocalWindowSize.current.heightSizeClass < WindowHeightSizeClass.Medium) KeyboardButtonContentHeightShort else KeyboardButtonContentHeightTall
|
val contentHeight: Float = if (LocalWindowSize.current.heightSizeClass < WindowHeightSizeClass.Medium) KeyboardButtonContentHeightShort else KeyboardButtonContentHeightTall
|
||||||
|
|
||||||
KeypadFlow(
|
KeypadFlow(
|
||||||
@ -89,39 +92,39 @@ internal fun DefaultKeyboard(
|
|||||||
val bModifier = Modifier.fillMaxWidth(width).fillMaxHeight(height)
|
val bModifier = Modifier.fillMaxWidth(width).fillMaxHeight(height)
|
||||||
|
|
||||||
if (acButton) {
|
if (acButton) {
|
||||||
KeyboardButtonTertiary(bModifier, IconPack.Clear, allowVibration, contentHeight) { clearInput() }
|
KeyboardButtonTertiary(bModifier, IconPack.Clear, stringResource(R.string.delete_label), allowVibration, contentHeight) { clearInput() }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Brackets, allowVibration, contentHeight) { addBracket() }
|
KeyboardButtonFilled(bModifier, IconPack.Brackets, stringResource(R.string.keyboard_brackets), allowVibration, contentHeight) { addBracket() }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonFilled(bModifier, IconPack.LeftBracket, allowVibration, contentHeight) { addDigit(Token.Operator.leftBracket) }
|
KeyboardButtonFilled(bModifier, IconPack.LeftBracket, stringResource(R.string.keyboard_left_bracket), allowVibration, contentHeight) { addDigit(Token.Operator.leftBracket) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.RightBracket, allowVibration, contentHeight) { addDigit(Token.Operator.rightBracket) }
|
KeyboardButtonFilled(bModifier, IconPack.RightBracket, stringResource(R.string.keyboard_right_bracket), allowVibration, contentHeight) { addDigit(Token.Operator.rightBracket) }
|
||||||
}
|
}
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Power, allowVibration, contentHeight) { addDigit(Token.Operator.power) }
|
KeyboardButtonFilled(bModifier, IconPack.Power, stringResource(R.string.keyboard_power), allowVibration, contentHeight) { addDigit(Token.Operator.power) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Root, allowVibration, contentHeight) { addDigit(Token.Operator.sqrt) }
|
KeyboardButtonFilled(bModifier, IconPack.Root, stringResource(R.string.keyboard_root), allowVibration, contentHeight) { addDigit(Token.Operator.sqrt) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key7, allowVibration, contentHeight) { addDigit(Token.Digit._7) }
|
KeyboardButtonLight(bModifier, IconPack.Key7, Token.Digit._7, allowVibration, contentHeight) { addDigit(Token.Digit._7) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key8, allowVibration, contentHeight) { addDigit(Token.Digit._8) }
|
KeyboardButtonLight(bModifier, IconPack.Key8, Token.Digit._8, allowVibration, contentHeight) { addDigit(Token.Digit._8) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key9, allowVibration, contentHeight) { addDigit(Token.Digit._9) }
|
KeyboardButtonLight(bModifier, IconPack.Key9, Token.Digit._9, allowVibration, contentHeight) { addDigit(Token.Digit._9) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Divide, allowVibration, contentHeight) { addDigit(Token.Operator.divide) }
|
KeyboardButtonFilled(bModifier, IconPack.Divide, stringResource(R.string.keyboard_divide), allowVibration, contentHeight) { addDigit(Token.Operator.divide) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key4, allowVibration, contentHeight) { addDigit(Token.Digit._4) }
|
KeyboardButtonLight(bModifier, IconPack.Key4, Token.Digit._4, allowVibration, contentHeight) { addDigit(Token.Digit._4) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key5, allowVibration, contentHeight) { addDigit(Token.Digit._5) }
|
KeyboardButtonLight(bModifier, IconPack.Key5, Token.Digit._5, allowVibration, contentHeight) { addDigit(Token.Digit._5) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key6, allowVibration, contentHeight) { addDigit(Token.Digit._6) }
|
KeyboardButtonLight(bModifier, IconPack.Key6, Token.Digit._6, allowVibration, contentHeight) { addDigit(Token.Digit._6) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Multiply, allowVibration, contentHeight) { addDigit(Token.Operator.multiply) }
|
KeyboardButtonFilled(bModifier, IconPack.Multiply, stringResource(R.string.keyboard_multiply), allowVibration, contentHeight) { addDigit(Token.Operator.multiply) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key1, allowVibration, contentHeight) { addDigit(Token.Digit._1) }
|
KeyboardButtonLight(bModifier, IconPack.Key1, Token.Digit._1, allowVibration, contentHeight) { addDigit(Token.Digit._1) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key2, allowVibration, contentHeight) { addDigit(Token.Digit._2) }
|
KeyboardButtonLight(bModifier, IconPack.Key2, Token.Digit._2, allowVibration, contentHeight) { addDigit(Token.Digit._2) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key3, allowVibration, contentHeight) { addDigit(Token.Digit._3) }
|
KeyboardButtonLight(bModifier, IconPack.Key3, Token.Digit._3, allowVibration, contentHeight) { addDigit(Token.Digit._3) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Minus, allowVibration, contentHeight) { addDigit(Token.Operator.minus) }
|
KeyboardButtonFilled(bModifier, IconPack.Minus, stringResource(R.string.keyboard_minus), allowVibration, contentHeight) { addDigit(Token.Operator.minus) }
|
||||||
|
|
||||||
if (middleZero) {
|
if (middleZero) {
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, contentHeight) { addDigit(Token.Digit.dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, contentHeight) { addDigit(Token.Digit.dot) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, Token.Digit._0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
||||||
} else {
|
} else {
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, Token.Digit._0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
||||||
KeyboardButtonLight(bModifier, fractionalIcon, allowVibration, contentHeight) { addDigit(Token.Digit.dot) }
|
KeyboardButtonLight(bModifier, fractionalIcon, stringResource(fractionalIconDescription), allowVibration, contentHeight) { addDigit(Token.Digit.dot) }
|
||||||
}
|
}
|
||||||
KeyboardButtonLight(bModifier, IconPack.Backspace, allowVibration, contentHeight, onLongClick = clearInput) { deleteDigit() }
|
KeyboardButtonLight(bModifier, IconPack.Backspace, stringResource(R.string.delete_label), allowVibration, contentHeight, onLongClick = clearInput) { deleteDigit() }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.Plus, allowVibration, contentHeight) { addDigit(Token.Operator.plus) }
|
KeyboardButtonFilled(bModifier, IconPack.Plus, stringResource(R.string.keyboard_plus), allowVibration, contentHeight) { addDigit(Token.Operator.plus) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,30 +144,31 @@ internal fun NumberBaseKeyboard(
|
|||||||
columns = 3
|
columns = 3
|
||||||
) { width, height ->
|
) { width, height ->
|
||||||
val bModifier = Modifier.fillMaxWidth(width).fillMaxHeight(height)
|
val bModifier = Modifier.fillMaxWidth(width).fillMaxHeight(height)
|
||||||
|
val wideButtonModifier = Modifier.fillMaxHeight(height).fillMaxWidth(width * 2)
|
||||||
|
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyA, allowVibration, contentHeight) { addDigit(Token.Letter._A) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyA, Token.Letter._A, allowVibration, contentHeight) { addDigit(Token.Letter._A) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyB, allowVibration, contentHeight) { addDigit(Token.Letter._B) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyB, Token.Letter._B, allowVibration, contentHeight) { addDigit(Token.Letter._B) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyC, allowVibration, contentHeight) { addDigit(Token.Letter._C) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyC, Token.Letter._C, allowVibration, contentHeight) { addDigit(Token.Letter._C) }
|
||||||
|
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyD, allowVibration, contentHeight) { addDigit(Token.Letter._D) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyD, Token.Letter._D, allowVibration, contentHeight) { addDigit(Token.Letter._D) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyE, allowVibration, contentHeight) { addDigit(Token.Letter._E) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyE, Token.Letter._E, allowVibration, contentHeight) { addDigit(Token.Letter._E) }
|
||||||
KeyboardButtonFilled(bModifier, IconPack.KeyF, allowVibration, contentHeight) { addDigit(Token.Letter._F) }
|
KeyboardButtonFilled(bModifier, IconPack.KeyF, Token.Letter._F, allowVibration, contentHeight) { addDigit(Token.Letter._F) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key7, allowVibration, contentHeight) { addDigit(Token.Digit._7) }
|
KeyboardButtonLight(bModifier, IconPack.Key7, Token.Digit._7, allowVibration, contentHeight) { addDigit(Token.Digit._7) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key8, allowVibration, contentHeight) { addDigit(Token.Digit._8) }
|
KeyboardButtonLight(bModifier, IconPack.Key8, Token.Digit._8, allowVibration, contentHeight) { addDigit(Token.Digit._8) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key9, allowVibration, contentHeight) { addDigit(Token.Digit._9) }
|
KeyboardButtonLight(bModifier, IconPack.Key9, Token.Digit._9, allowVibration, contentHeight) { addDigit(Token.Digit._9) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key4, allowVibration, contentHeight) { addDigit(Token.Digit._4) }
|
KeyboardButtonLight(bModifier, IconPack.Key4, Token.Digit._4, allowVibration, contentHeight) { addDigit(Token.Digit._4) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key5, allowVibration, contentHeight) { addDigit(Token.Digit._5) }
|
KeyboardButtonLight(bModifier, IconPack.Key5, Token.Digit._5, allowVibration, contentHeight) { addDigit(Token.Digit._5) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key6, allowVibration, contentHeight) { addDigit(Token.Digit._6) }
|
KeyboardButtonLight(bModifier, IconPack.Key6, Token.Digit._6, allowVibration, contentHeight) { addDigit(Token.Digit._6) }
|
||||||
|
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key1, allowVibration, contentHeight) { addDigit(Token.Digit._1) }
|
KeyboardButtonLight(bModifier, IconPack.Key1, Token.Digit._1, allowVibration, contentHeight) { addDigit(Token.Digit._1) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key2, allowVibration, contentHeight) { addDigit(Token.Digit._2) }
|
KeyboardButtonLight(bModifier, IconPack.Key2, Token.Digit._2, allowVibration, contentHeight) { addDigit(Token.Digit._2) }
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key3, allowVibration, contentHeight) { addDigit(Token.Digit._3) }
|
KeyboardButtonLight(bModifier, IconPack.Key3, Token.Digit._3, allowVibration, contentHeight) { addDigit(Token.Digit._3) }
|
||||||
|
|
||||||
// TODO Should be a separate o use custom widthFillFactors and heightFillFactors
|
// TODO Should be a separate o use custom widthFillFactors and heightFillFactors
|
||||||
KeyboardButtonLight(bModifier, IconPack.Key0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
KeyboardButtonLight(bModifier, IconPack.Key0, Token.Digit._0, allowVibration, contentHeight) { addDigit(Token.Digit._0) }
|
||||||
KeyboardButtonLight(Modifier.fillMaxHeight(height).fillMaxWidth(width * 2), IconPack.Backspace, allowVibration, contentHeight, clearInput) { deleteDigit() }
|
KeyboardButtonLight(wideButtonModifier, IconPack.Backspace, stringResource(R.string.delete_label), allowVibration, contentHeight, clearInput) { deleteDigit() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,13 +52,13 @@ import com.sadellie.unitto.core.base.MAX_PRECISION
|
|||||||
import com.sadellie.unitto.core.base.OutputFormat
|
import com.sadellie.unitto.core.base.OutputFormat
|
||||||
import com.sadellie.unitto.core.base.R
|
import com.sadellie.unitto.core.base.R
|
||||||
import com.sadellie.unitto.core.base.Separator
|
import com.sadellie.unitto.core.base.Separator
|
||||||
import com.sadellie.unitto.core.ui.common.NavigateUpButton
|
|
||||||
import com.sadellie.unitto.core.ui.common.PagedIsland
|
|
||||||
import com.sadellie.unitto.core.ui.common.SegmentedButton
|
|
||||||
import com.sadellie.unitto.core.ui.common.SegmentedButtonsRow
|
|
||||||
import com.sadellie.unitto.core.ui.common.EmptyScreen
|
import com.sadellie.unitto.core.ui.common.EmptyScreen
|
||||||
import com.sadellie.unitto.core.ui.common.ListItem
|
import com.sadellie.unitto.core.ui.common.ListItem
|
||||||
|
import com.sadellie.unitto.core.ui.common.NavigateUpButton
|
||||||
|
import com.sadellie.unitto.core.ui.common.PagedIsland
|
||||||
import com.sadellie.unitto.core.ui.common.ScaffoldWithLargeTopBar
|
import com.sadellie.unitto.core.ui.common.ScaffoldWithLargeTopBar
|
||||||
|
import com.sadellie.unitto.core.ui.common.SegmentedButton
|
||||||
|
import com.sadellie.unitto.core.ui.common.SegmentedButtonsRow
|
||||||
import com.sadellie.unitto.core.ui.common.Slider
|
import com.sadellie.unitto.core.ui.common.Slider
|
||||||
import com.sadellie.unitto.core.ui.common.textfield.FormatterSymbols
|
import com.sadellie.unitto.core.ui.common.textfield.FormatterSymbols
|
||||||
import com.sadellie.unitto.core.ui.common.textfield.formatExpression
|
import com.sadellie.unitto.core.ui.common.textfield.formatExpression
|
||||||
@ -209,7 +209,7 @@ fun FormattingScreen(
|
|||||||
selected = Separator.PERIOD == uiState.separator
|
selected = Separator.PERIOD == uiState.separator
|
||||||
)
|
)
|
||||||
SegmentedButton(
|
SegmentedButton(
|
||||||
label = stringResource(R.string.settings_comma),
|
label = stringResource(R.string.comma),
|
||||||
onClick = { onSeparatorChange(Separator.COMMA) },
|
onClick = { onSeparatorChange(Separator.COMMA) },
|
||||||
selected = Separator.COMMA == uiState.separator
|
selected = Separator.COMMA == uiState.separator
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user