summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Boehm <hboehm@google.com>2015-10-11 16:46:18 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-10-11 16:46:18 +0000
commit6760288ce5ee061c305555487f45fa633c807404 (patch)
tree9a6f977a1082297ef1bb8d3bd79aea5cb29d7801
parent6c26db27399f73f90a15b3a1af9ff0b43d553ffd (diff)
parentd5f67fe2d2ddabecd0618a4bc8ac899cc316ca10 (diff)
downloadandroid_packages_apps_ExactCalculator-6760288ce5ee061c305555487f45fa633c807404.tar.gz
android_packages_apps_ExactCalculator-6760288ce5ee061c305555487f45fa633c807404.tar.bz2
android_packages_apps_ExactCalculator-6760288ce5ee061c305555487f45fa633c807404.zip
am d5f67fe2: Merge "Implicitly clear on incomplete keyboard input" into mnc-dr-dev
* commit 'd5f67fe2d2ddabecd0618a4bc8ac899cc316ca10': Implicitly clear on incomplete keyboard input
-rw-r--r--src/com/android/calculator2/Calculator.java26
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);