From 25f0c8089eecfcded7f41c66453bd874ba92219a Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 15 May 2013 03:54:15 -0700
Subject: [PATCH] am 96a9f357: Merge "Fix unintentional setup step advance in
 orientation change"

* commit '96a9f357c7e2a059687926cd7cd52ac5d06bc65e':
  Fix unintentional setup step advance in orientation change
---
 .../latin/setup/SetupWizardActivity.java      | 20 +++++++++++++++----
 1 file 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 b6cdafb9e1..78a6478c6e 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();
         }
-- 
GitLab