Persist "inv" selected state
Bug: 22441481
Change-Id: Ic572eb2b06ff7394a2ae9295adf6f6c3dba8cb71
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java
index dc08612..be83d7d 100644
--- a/src/com/android/calculator2/Calculator.java
+++ b/src/com/android/calculator2/Calculator.java
@@ -184,12 +184,14 @@
}
};
- private static final String NAME = Calculator.class.getName();
+ private static final String NAME = "Calculator";
private static final String KEY_DISPLAY_STATE = NAME + "_display_state";
private static final String KEY_UNPROCESSED_CHARS = NAME + "_unprocessed_chars";
+ /**
+ * Associated value is a byte array holding the evaluator state.
+ */
private static final String KEY_EVAL_STATE = NAME + "_eval_state";
- // Associated value is a byte array holding both mCalculatorState
- // and the (much more complex) evaluator state.
+ private static final String KEY_INVERSE_MODE = NAME + "_inverse_mode";
private CalculatorState mCurrentState;
private Evaluator mEvaluator;
@@ -295,7 +297,8 @@
mFormulaText.setOnPasteListener(this);
mDeleteButton.setOnLongClickListener(this);
- onInverseToggled(mInverseToggle.isSelected());
+ onInverseToggled(savedInstanceState != null
+ && savedInstanceState.getBoolean(KEY_INVERSE_MODE));
onModeChanged(mEvaluator.getDegreeMode());
if (mCurrentState != CalculatorState.INPUT) {
@@ -331,6 +334,7 @@
throw new AssertionError("Impossible IO exception", e);
}
outState.putByteArray(KEY_EVAL_STATE, byteArrayStream.toByteArray());
+ outState.putBoolean(KEY_INVERSE_MODE, mInverseToggle.isSelected());
}
// Set the state, updating delete label and display colors.
@@ -409,6 +413,7 @@
* @param showInverse {@code true} if inverse functions should be shown
*/
private void onInverseToggled(boolean showInverse) {
+ mInverseToggle.setSelected(showInverse);
if (showInverse) {
mInverseToggle.setContentDescription(getString(R.string.desc_inv_on));
for (View invertibleButton : mInvertibleButtons) {