diff options
author | 2013-05-15 16:07:56 +0900 | |
---|---|---|
committer | 2013-05-15 19:50:35 +0900 | |
commit | 9b4a883e0961652e60f7934d3b92074f47f7bc23 (patch) | |
tree | 940fd9f893a915e5e95cc3352c338a728d637a3c /java/src/com/android/inputmethod | |
parent | 769427cff24944958f5f1f6179090a86444f3eab (diff) | |
download | latinime-9b4a883e0961652e60f7934d3b92074f47f7bc23.tar.gz latinime-9b4a883e0961652e60f7934d3b92074f47f7bc23.tar.xz latinime-9b4a883e0961652e60f7934d3b92074f47f7bc23.zip |
Fix unintentional setup step advance in orientation change
Bug: 8159728
Change-Id: I53e7d7c8fb5cc231ea94474b091e550f77ae8dab
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r-- | java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java index b6cdafb9e..78a6478c6 100644 --- a/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java +++ b/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java @@ -61,6 +61,7 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL private SetupStepGroup mSetupStepGroup; private static final String STATE_STEP = "step"; private int mStepNumber; + private boolean mNeedsToAdjustStepNumberToSystemState; private static final int STEP_WELCOME = 0; private static final int STEP_1 = 1; private static final int STEP_2 = 2; @@ -159,9 +160,7 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL step2.setAction(new Runnable() { @Override public void run() { - // Invoke input method picker. - RichInputMethodManager.getInstance().getInputMethodManager() - .showInputMethodPicker(); + invokeInputMethodPicker(); } }); mSetupStepGroup.addStep(step2); @@ -245,6 +244,7 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); + mNeedsToAdjustStepNumberToSystemState = true; } private void invokeSettingsOfThisIme() { @@ -260,6 +260,14 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL intent.setAction(Settings.ACTION_INPUT_METHOD_SETTINGS); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); + mNeedsToAdjustStepNumberToSystemState = true; + } + + void invokeInputMethodPicker() { + // Invoke input method picker. + RichInputMethodManager.getInstance().getInputMethodManager() + .showInputMethodPicker(); + mNeedsToAdjustStepNumberToSystemState = true; } void invokeSubtypeEnablerOfThisIme() { @@ -313,6 +321,9 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL @Override protected void onRestart() { super.onRestart(); + // Probably the setup wizard has been invoked from "Recent" menu. The setup step number + // needs to be adjusted to system state, because the state (IME is enabled and/or current) + // may have been changed. if (isInSetupSteps(mStepNumber)) { mStepNumber = determineSetupStepNumber(); } @@ -371,7 +382,8 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL @Override public void onWindowFocusChanged(final boolean hasFocus) { super.onWindowFocusChanged(hasFocus); - if (hasFocus && isInSetupSteps(mStepNumber)) { + if (hasFocus && mNeedsToAdjustStepNumberToSystemState) { + mNeedsToAdjustStepNumberToSystemState = false; mStepNumber = determineSetupStepNumber(); updateSetupStepView(); } |