From 5ecff10644a7672071394640cab7bd0279c3ba71 Mon Sep 17 00:00:00 2001
From: Danil Ochagov <danilochagov@gmail.com>
Date: Mon, 18 May 2020 17:45:52 +0300
Subject: [PATCH 1/4] Add division by zero message

---
 .../calculator/helpers/CalculatorImpl.kt      | 22 +++++++++++++------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
index 3d527d05..6558caee 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
@@ -56,13 +56,21 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
         val second = secondValue.format()
         val sign = getSign(lastOperation)
 
-        if (sign == "√") {
-            setFormula(sign + first)
-        } else if (sign == "!") {
-            setFormula(first + sign)
-        } else if (!sign.isEmpty()) {
-            var formula = first + sign + second
-            setFormula(formula)
+        when {
+            baseValue == 0.0 && secondValue == 0.0 && sign == "/" -> {
+                setFormula("Error: division by zero")
+            }
+
+            sign == "√" -> setFormula(sign + first)
+
+            sign == "!" -> setFormula(first + sign)
+
+            else -> {
+                if (sign.isNotEmpty()) {
+                    val formula = first + sign + second
+                    setFormula(formula)
+                }
+            }
         }
     }
 

From f13b72d04bb1398a913610e55924ce8da567714a Mon Sep 17 00:00:00 2001
From: Danil Ochagov <danilochagov@gmail.com>
Date: Tue, 19 May 2020 13:19:28 +0300
Subject: [PATCH 2/4] Add division by zero message in strings.xml

---
 .../com/simplemobiletools/calculator/helpers/CalculatorImpl.kt | 2 +-
 app/src/main/res/values-ar/strings.xml                         | 3 +++
 app/src/main/res/values-az/strings.xml                         | 3 +++
 app/src/main/res/values-cs/strings.xml                         | 3 +++
 app/src/main/res/values-cy/strings.xml                         | 3 +++
 app/src/main/res/values-de/strings.xml                         | 3 +++
 app/src/main/res/values-el/strings.xml                         | 3 +++
 app/src/main/res/values-es/strings.xml                         | 3 +++
 app/src/main/res/values-fr/strings.xml                         | 3 +++
 app/src/main/res/values-hr/strings.xml                         | 3 +++
 app/src/main/res/values-id/strings.xml                         | 3 +++
 app/src/main/res/values-in/strings.xml                         | 3 +++
 app/src/main/res/values-it/strings.xml                         | 3 +++
 app/src/main/res/values-ja/strings.xml                         | 3 +++
 app/src/main/res/values-lt/strings.xml                         | 3 +++
 app/src/main/res/values-nl/strings.xml                         | 3 +++
 app/src/main/res/values-pl/strings.xml                         | 3 +++
 app/src/main/res/values-pt/strings.xml                         | 3 +++
 app/src/main/res/values-ru/strings.xml                         | 3 +++
 app/src/main/res/values-sk/strings.xml                         | 3 +++
 app/src/main/res/values-sv/strings.xml                         | 3 +++
 app/src/main/res/values-tr/strings.xml                         | 3 +++
 app/src/main/res/values-uk/strings.xml                         | 3 +++
 app/src/main/res/values-zh-rTW/strings.xml                     | 3 +++
 app/src/main/res/values/strings.xml                            | 3 +++
 25 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
index 6558caee..9e8ad843 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
@@ -58,7 +58,7 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
 
         when {
             baseValue == 0.0 && secondValue == 0.0 && sign == "/" -> {
-                setFormula("Error: division by zero")
+                setFormula(context.getString(R.string.formula_divide_by_zero_error))
             }
 
             sign == "√" -> setFormula(sign + first)
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 33d609e8..cb4154f7 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">الحاسبة</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">خطأ: القسمة على صفر</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">الاهتزاز عند الضغط على الازرار</string>
 
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index eb639e5b..207d52dd 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulyator</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Səhv: sıfıra bölünmə</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Düyməyə basdıqda titrə</string>
 
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 38892ec2..959740a0 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulačka</string>
     <string name="scientific_calculator">Vědecká kalkulačka</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Chyba: dělení nulou</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrovat při stisku tlačítka</string>
 
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index b0f3e13d..b4057e9e 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Cyfrifiannell</string>
     <string name="scientific_calculator">Cyfrifiannell Gwyddonol</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Gwall: rhannu â sero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Dirgrynu wrth wasgu botymau</string>
 
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 6b2760bc..d36ec9ca 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Rechner</string>ng>
     <string name="scientific_calculator">Wissenschaftlicher Rechner</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Fehler: Division durch Null</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Bei Tastendruck vibrieren</string>
 
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index c0cb69ed..a3b5123e 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Αριθμομηχανή</string>
     <string name="scientific_calculator">Επιστημονική Αριθμομηχανή</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Σφάλμα: διαίρεση με μηδέν</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Δόνηση στο πάτημα πλήκτρου</string>
 
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 0f9fa8eb..adafe97d 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Calculadora</string>
     <string name="scientific_calculator">Calculadora Científica</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Error: división por cero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrar al presionar un botón</string>
 
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index af3c1794..c51c2ab9 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Calculatrice</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Erreur: division par zéro</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrer lors de l\'appui sur les boutons</string>
 
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index ab4a7b5a..7a0468bf 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulator</string>
     <string name="scientific_calculator">Znanstveni kalkulator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Pogreška: podjela prema nuli</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibriraj prilikom pritiska na gumb</string>
 
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index 2d7c8e4f..32267811 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulator</string>
     <string name="scientific_calculator">Kalkulator Sains</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Kesalahan: pembagian dengan nol</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Getar saat tombol ditekan</string>
 
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index 2d7c8e4f..32267811 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulator</string>
     <string name="scientific_calculator">Kalkulator Sains</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Kesalahan: pembagian dengan nol</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Getar saat tombol ditekan</string>
 
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 8f3f0792..42d8dc02 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Calcolatrice</string>
     <string name="scientific_calculator">Calcolatrice scientifica</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Errore: divisione per zero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibra alla pressione di un tasto</string>
 
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 82856bb0..0231629e 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">電卓</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">エラー:ゼロによる除算</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">ボタンのタップ時に振動する</string>
 
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 934ce411..52076e67 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Skaičiuotuvas</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Klaida: padalijimas iš nulio</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibruoti kai spaudžiami mygtukai</string>
 
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index c70e82eb..44860565 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Rekenmachine</string>
     <string name="scientific_calculator">Wetenschappelijke Rekenmachine</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Fout: delen door nul</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Trillen bij toetsaanslagen</string>
 
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index b3cd49b2..4190ced4 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulator</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Błąd: dzielenie przez zero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Wibracja po wciśnięciu przycisku</string>
 
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 44e034cf..122e8d9e 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Calculadora</string>
     <string name="scientific_calculator">Calculadora científica</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Erro: divisão por zero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrar ao tocar nos botões</string>
 
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 477b622e..8c959ebe 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Калькулятор</string>
     <string name="scientific_calculator">Научный калькулятор</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Ошибка: деление на ноль</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Вибрация при нажатии кнопок</string>
 
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 02bd2a14..e04ca8ea 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkulačka</string>
     <string name="scientific_calculator">Vedecká kalkulačka</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Chyba: delenie nulou</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrovať pri stlačení tlačidla</string>
 
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index c4dc0a30..5c3ebd2a 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Kalkylator</string>
     <string name="scientific_calculator">Avancerad kalkylator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Fel: delning med noll</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrera när jag trycker på knapparna</string>
 
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 591970de..706df9a0 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Hesap Makinesi</string>
     <string name="scientific_calculator">Bilimsel Hesap Makinesi</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Hata: sıfıra bölme</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Düğmeye basıldığında titret</string>
 
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 42ea4606..aa8b0705 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Калькулятор</string>
     <string name="scientific_calculator">Науковий Калькулятор</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Помилка: ділення на нуль</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Вібрувати з натиском кнопок</string>
 
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index aa7e8dc9..0a0ab80e 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">簡易計算機</string>
     <string name="scientific_calculator">工程計算機</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">錯誤:被零除</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">按下按鈕時震動</string>
 
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 73766c26..75e1b3d7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,6 +3,9 @@
     <string name="app_launcher_name">Calculator</string>
     <string name="scientific_calculator">Scientific Calculator</string>
 
+    <!-- Calculator field -->
+    <string name="formula_divide_by_zero_error">Error: division by zero</string>
+
     <!-- Settings -->
     <string name="vibrate_on_button_press">Vibrate on button press</string>
 

From 95feb32d0fa48b1612afdfb6dbbc04a84bc0f12f Mon Sep 17 00:00:00 2001
From: Danil Ochagov <danilochagov@gmail.com>
Date: Tue, 19 May 2020 15:03:53 +0300
Subject: [PATCH 3/4] Show Toast message instead of printing division by zero
 error

---
 .../calculator/helpers/CalculatorImpl.kt      | 25 +++++++++++--------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
index 9e8ad843..9520ee9e 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
@@ -2,6 +2,7 @@ package com.simplemobiletools.calculator.helpers
 
 import android.content.Context
 import android.util.Log
+import android.widget.Toast
 import com.simplemobiletools.calculator.R
 import com.simplemobiletools.calculator.operation.OperationFactory
 
@@ -57,19 +58,21 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
         val sign = getSign(lastOperation)
 
         when {
-            baseValue == 0.0 && secondValue == 0.0 && sign == "/" -> {
-                setFormula(context.getString(R.string.formula_divide_by_zero_error))
+            sign == "√" -> {
+                setFormula(sign + first)
             }
-
-            sign == "√" -> setFormula(sign + first)
-
-            sign == "!" -> setFormula(first + sign)
-
-            else -> {
-                if (sign.isNotEmpty()) {
-                    val formula = first + sign + second
-                    setFormula(formula)
+            sign == "!" -> {
+                setFormula(first + sign)
+            }
+            sign.isNotEmpty() -> {
+                if (secondValue == 0.0 && sign == "/") {
+                    Toast.makeText(
+                            context,
+                            context.getString(R.string.formula_divide_by_zero_error),
+                            Toast.LENGTH_SHORT).show()
                 }
+
+                setFormula(first + sign + second)
             }
         }
     }

From 11933ce2e1258b99d125051acb0b4bdf46e82a01 Mon Sep 17 00:00:00 2001
From: Tibor Kaputa <tibor@kaputa.sk>
Date: Tue, 19 May 2020 14:38:54 +0200
Subject: [PATCH 4/4] simplifying the zero division check a bit

---
 .../calculator/helpers/CalculatorImpl.kt            | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
index 9520ee9e..73d5e032 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/CalculatorImpl.kt
@@ -58,18 +58,11 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
         val sign = getSign(lastOperation)
 
         when {
-            sign == "√" -> {
-                setFormula(sign + first)
-            }
-            sign == "!" -> {
-                setFormula(first + sign)
-            }
+            sign == "√" -> setFormula(sign + first)
+            sign == "!" -> setFormula(first + sign)
             sign.isNotEmpty() -> {
                 if (secondValue == 0.0 && sign == "/") {
-                    Toast.makeText(
-                            context,
-                            context.getString(R.string.formula_divide_by_zero_error),
-                            Toast.LENGTH_SHORT).show()
+                    context.toast(context.getString(R.string.formula_divide_by_zero_error))
                 }
 
                 setFormula(first + sign + second)