Merge branch 'master' of github.com:SimpleMobileTools/Simple-Calculator

This commit is contained in:
tibbi 2021-11-04 09:58:38 +01:00
commit 07e135ca00
2 changed files with 23 additions and 0 deletions

View File

@ -42,6 +42,10 @@ class MainActivity : SimpleActivity(), Calculator {
btn_power.setOnClickListener { calc.handleOperation(POWER); checkHaptic(it) }
btn_root.setOnClickListener { calc.handleOperation(ROOT); checkHaptic(it) }
btn_minus.setOnLongClickListener {
calc.turnToNegative()
}
btn_clear.setOnClickListener { calc.handleClear(); checkHaptic(it) }
btn_clear.setOnLongClickListener { calc.handleReset(); true }

View File

@ -123,6 +123,25 @@ class CalculatorImpl(calculator: Calculator, private val context: Context) {
showNewResult(inputDisplayedFormula)
}
fun turnToNegative(): Boolean {
if (inputDisplayedFormula.isEmpty()) {
return false
}
if (!inputDisplayedFormula.trimStart('-').any { it.toString() in operations } && inputDisplayedFormula.replace(",", "").toDouble() != 0.0) {
inputDisplayedFormula = if (inputDisplayedFormula.first() == '-') {
inputDisplayedFormula.substring(1)
} else {
"-$inputDisplayedFormula"
}
showNewResult(inputDisplayedFormula)
return true
}
return false
}
// handle percents manually, it doesn't seem to be possible via net.objecthunter:exp4j. "%" is used only for modulo there
private fun handlePercent() {
var result = calculatePercentage(baseValue, getSecondValue(), lastOperation)