Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Darkempire78 committed Jan 21, 2025
2 parents bd7de19 + c9673fe commit e17a991
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -479,14 +479,24 @@ class MainActivity : AppCompatActivity() {
).last()
}
var firstNumberAfter = ""
if (cursorPosition < binding.input.text.length - 1) {
var nextChar = ' '
if (cursorPosition <= binding.input.text.length - 1) {
nextChar = binding.input.text[cursorPosition]
}

if (cursorPosition <= binding.input.text.length - 1) {
firstNumberAfter = NumberFormatter.extractNumbers(
binding.input.text.toString()
.substring(cursorPosition, binding.input.text.length),
decimalSeparatorSymbol
).first()

if (nextChar == '.') {
firstNumberAfter = nextChar.toString()
}
}
if (decimalSeparatorSymbol in lastNumberBefore) { // || decimalSeparatorSymbol in firstNumberAfter) {
if (decimalSeparatorSymbol in lastNumberBefore
|| decimalSeparatorSymbol in firstNumberAfter) {
return@withContext
}
}
Expand All @@ -500,7 +510,7 @@ class MainActivity : AppCompatActivity() {
val cursorOffset = newValueFormatted.length - newValue.length
binding.input.setSelection(cursorPosition + value.length + cursorOffset)
} else {
val desiredCursorPosition = (leftValueFormatted.length + value.length)
val desiredCursorPosition = leftValueFormatted.length + value.length
// Limit the cursor position to the length of the input
val safeCursorPosition = desiredCursorPosition.coerceAtMost(binding.input.text.length)
binding.input.setSelection(safeCursorPosition)
Expand Down Expand Up @@ -958,6 +968,8 @@ class MainActivity : AppCompatActivity() {

val calculation = binding.input.text.toString()

Expression().addParenthesis(calculation)

if (calculation != "") {

val resultString = calculationResult.toString()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ class Expression {

}

private fun addParenthesis(calculation: String): String {
fun addParenthesis(calculation: String): String {
// Add ")" which lack
var cleanCalculation = calculation
var openParentheses = 0
Expand All @@ -121,6 +121,10 @@ class Expression {
cleanCalculation += ')'
}
}
// Trigger syntax error if missing '('
if (closeParentheses > openParentheses) {
syntax_error = true
}

return cleanCalculation
}
Expand Down
20 changes: 10 additions & 10 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="settings_general_vibration">Vibrace</string>
<string name="settings_general_theme">Motiv</string>
<string name="app_name_display">Kalkulačka</string>
<string name="menu_clear_history">Vymazat historii</string>
<string name="menu_clear_history">Smazat historii</string>
<string name="menu_about">O aplikaci</string>
<string name="theme_amoled">Amoled</string>
<string name="theme_light">Světlý</string>
Expand All @@ -17,9 +17,9 @@
<string name="settings_category_history">HISTORIE</string>
<string name="settings_general_vibration_desc">Vibrovat při stisknutí tlačítka</string>
<string name="settings_history_size">Výsledky byly uloženy do historie</string>
<string name="settings_advanced_prevent_sleep">Zabránit uspání telefonu</string>
<string name="settings_advanced_prevent_sleep">Udržovat zařízení vzhůru</string>
<string name="settings_category_advanced">POKROČILÉ</string>
<string name="settings_general_scientific_mode_desc">Při otevření aplikace automaticky zapnout vědecký režim</string>
<string name="settings_general_scientific_mode_desc">Používat vědecký režim jako výchozí</string>
<string name="settings_general_radians">Radiány</string>
<string name="settings_general_radians_desc">Používat radiány místo stupňů</string>
<string name="about_category_help">POMOZTE NÁM</string>
Expand All @@ -29,32 +29,32 @@
<string name="syntax_error">Chyba syntaxe</string>
<string name="about_category_info">INFO O APLIKACI</string>
<string name="about_help_translate">Překlad</string>
<string name="about_help_rate">Ohodnotit aplikaci</string>
<string name="about_easter_egg">Děkujeme za používání OpenCalc ❤️</string>
<string name="about_help_rate">Napsat recenzi</string>
<string name="about_easter_egg">Děkujeme že používáte OpenCalc ❤️</string>
<string name="about_made_in_france">Vytvořeno s ❤️ ve Francii</string>
<string name="settings_formatting_precision">Počet desetinných míst</string>
<string name="about_other_privacy_policy">Zásady ochrany soukromí</string>
<string name="settings_general_language">Jazyk</string>
<string name="theme_system">Systém</string>
<string name="settings_general_scientific_mode">Vědecký režim</string>
<string name="about_other_version">Verze</string>
<string name="settings_advanced_prevent_sleep_desc">Zabrání uspání telefonu, když je aplikace v popředí</string>
<string name="settings_advanced_prevent_sleep_desc">Zabrání uspání zařízení když je aplikace otevřená</string>
<string name="settings_general_add_modulo_desc">Nahradit \"X²\" modulem (dostupný když je \"INV\" zmáčknuté)</string>
<string name="settings_category_formatting">FORMÁTOVÁNÍ</string>
<string name="about_other_license">Licence GPL 3.0</string>
<string name="settings_general_split_parenthesis_button_desc">Odstranit \"AC\" tlačítko k rozdvojení tlačítka se závorkami</string>
<string name="settings_formatting_scientific_notation_desc">Převést všechny výsledky do vědeckého zápisu</string>
<string name="settings_general_split_parenthesis_button_desc">Nahradit tlačítko \"AC\" tlačítky se závorkami</string>
<string name="settings_formatting_scientific_notation_desc">Převést všechny výsledky do vědecké notace</string>
<string name="settings_advanced_long_click_copy_desc">Dlouhé zmáčknutí zkopíruje text položky místo výběru</string>
<string name="settings_advanced_long_click_copy">Dlouhé zmačknutí ke zkopírování čísla</string>
<string name="settings_general_add_modulo">Přidat tlačítko modula</string>
<string name="settings_formatting_scientific_notation">Číslo do vědeckého zápisu</string>
<string name="settings_formatting_scientific_notation">Vědecká notace</string>
<string name="require_real_number">Je potřeba opravdové číslo</string>
<string name="settings_general_split_parenthesis_button">Rozdvojit tlačítko se závorkami</string>
<string name="copied_result">Zkopírovaný výsledek</string>
<string name="copied_history_calculation">Zkopírovaný výpočet z historie</string>
<string name="copied_history_result">Zkopírovaný výsledek z historie</string>
<string name="settings_delete_history_element_on_swipe">Povolit selektivní mazání historie</string>
<string name="settings_delete_history_element_on_swipe_desc">Smazat konkrétní položku historie při přejetí prstem</string>
<string name="settings_delete_history_element_on_swipe_desc">Smazat konkrétní položku historie po přejetí prstem</string>
<string name="tangentDesc">tečna</string>
<string name="logarithmDesc">logaritmus</string>
<string name="settings_auto_save_calculation_without_equal_button">Automaticky ukládat počty</string>
Expand Down
13 changes: 11 additions & 2 deletions app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<string name="about_help_translate">Översätt</string>
<string name="settings_category_formatting">FORMATERING</string>
<string name="settings_general_scientific_mode">Vetenskapligt läge</string>
<string name="settings_history_size">Resultat sparade i historik</string>
<string name="settings_history_size">Resultat sparade i historiken</string>
<string name="settings_formatting_precision">Antal decimaler</string>
<string name="settings_general_split_parenthesis_button_desc">Ta bort \"AC\"-knappen för att dela upp parenteser-knappen i två knappar</string>
<string name="menu_settings">Inställningar</string>
Expand Down Expand Up @@ -53,4 +53,13 @@
<string name="copied_result">Kopierade resultat</string>
<string name="copied_history_calculation">Kopierade historikuträkning</string>
<string name="copied_history_result">Kopierade historikresultat</string>
</resources>
<string name="pointDesc">komma</string>
<string name="backspaceDesc">backsteg</string>
<string name="percentDesc">procent</string>
<string name="parenthesesDesc">parenteser</string>
<string name="clearDesc">rensa</string>
<string name="settings_delete_history_element_on_swipe">Tillåt selektiv radering av historiken</string>
<string name="settings_delete_history_element_on_swipe_desc">Radera specifik historikpost vid svepning</string>
<string name="settings_auto_save_calculation_without_equal_button">Spara uträkningar automatiskt</string>
<string name="settings_auto_save_calculation_without_equal_button_desc">Spara automatiskt uträkningar i historiken utan att behöva klicka på likamedknappen</string>
</resources>

0 comments on commit e17a991

Please sign in to comment.