diff options
author | Hans Boehm <hboehm@google.com> | 2015-10-11 16:41:35 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-10-11 16:41:35 +0000 |
commit | d5f67fe2d2ddabecd0618a4bc8ac899cc316ca10 (patch) | |
tree | 5d656f29be82e95c4e67b0924a59a20d3d54b711 /src | |
parent | 68db0665c1e0e608c23f8a35bf97b4d39305827f (diff) | |
parent | f6033a42aa90367012ecb11977fe86ccdac54f54 (diff) | |
download | android_packages_apps_ExactCalculator-d5f67fe2d2ddabecd0618a4bc8ac899cc316ca10.tar.gz android_packages_apps_ExactCalculator-d5f67fe2d2ddabecd0618a4bc8ac899cc316ca10.tar.bz2 android_packages_apps_ExactCalculator-d5f67fe2d2ddabecd0618a4bc8ac899cc316ca10.zip |
Merge "Implicitly clear on incomplete keyboard input" into mnc-dr-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/calculator2/Calculator.java | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index 99ef032..c7e14a4 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -445,19 +445,27 @@ public class Calculator extends Activity } } + /** + * Switch to INPUT from RESULT state in response to input of the specified button_id. + * View.NO_ID is treated as an incomplete function id. + */ + private void switchToInput(int button_id) { + if (KeyMaps.isBinary(button_id) || KeyMaps.isSuffix(button_id)) { + mEvaluator.collapse(); + } else { + announceClearedForAccessibility(); + mEvaluator.clear(); + } + setState(CalculatorState.INPUT); + } + // Add the given button id to input expression. // If appropriate, clear the expression before doing so. private void addKeyToExpr(int id) { if (mCurrentState == CalculatorState.ERROR) { setState(CalculatorState.INPUT); } else if (mCurrentState == CalculatorState.RESULT) { - if (KeyMaps.isBinary(id) || KeyMaps.isSuffix(id)) { - mEvaluator.collapse(); - } else { - announceClearedForAccessibility(); - mEvaluator.clear(); - } - setState(CalculatorState.INPUT); + switchToInput(id); } if (!mEvaluator.append(id)) { // TODO: Some user visible feedback? @@ -916,6 +924,10 @@ public class Calculator extends Activity int current = 0; int len = moreChars.length(); boolean lastWasDigit = false; + if (mCurrentState == CalculatorState.RESULT && len != 0) { + // Clear display immediately for incomplete function name. + switchToInput(KeyMaps.keyForChar(moreChars.charAt(current))); + } while (current < len) { char c = moreChars.charAt(current); int k = KeyMaps.keyForChar(c); |