diff options
author | 2013-05-09 13:14:18 +0900 | |
---|---|---|
committer | 2013-05-10 15:15:53 +0900 | |
commit | 9ed322b40f70bee4f08032dfe1fe902062d1f42c (patch) | |
tree | 9523fad2570c76229866c26fa0c6c4c2a3a2c195 | |
parent | b0aabbfbe0144272df816160e7b0b569bbba55cd (diff) | |
download | latinime-9ed322b40f70bee4f08032dfe1fe902062d1f42c.tar.gz latinime-9ed322b40f70bee4f08032dfe1fe902062d1f42c.tar.xz latinime-9ed322b40f70bee4f08032dfe1fe902062d1f42c.zip |
Keep SetupActivity alive to check re-launching from launcher
Bug: 8336068
Change-Id: I183b8e3fd1b3898d5f8dbbb13a0c93c64341fc38
-rw-r--r-- | java/src/com/android/inputmethod/latin/setup/SetupActivity.java | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java index acb0766f2..97cf7fc6c 100644 --- a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java +++ b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java @@ -63,7 +63,8 @@ public final class SetupActivity extends Activity implements View.OnClickListene private static final int STEP_1 = 1; private static final int STEP_2 = 2; private static final int STEP_3 = 3; - private boolean mWasLanguageAndInputSettingsInvoked; + private static final int STEP_LAUNCHING_IME_SETTINGS = 4; + private static final int STEP_BACK_FROM_IME_SETTINGS = 5; private final SettingsPoolingHandler mHandler = new SettingsPoolingHandler(this); @@ -83,7 +84,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene } switch (msg.what) { case MSG_POLLING_IME_SETTINGS: - if (SetupActivity.isThisImeEnabled(setupActivity)) { + if (isThisImeEnabled(setupActivity)) { setupActivity.invokeSetupWizardOfThisIme(); return; } @@ -112,17 +113,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene RichInputMethodManager.init(this); if (savedInstanceState == null) { - mStepNumber = determineSetupStepNumber(); - if (mStepNumber == STEP_1 && !mWasLanguageAndInputSettingsInvoked) { - mStepNumber = STEP_WELCOME; - } - if (mStepNumber == STEP_3) { - // This IME already has been enabled and set as current IME. - // TODO: Implement tutorial. - invokeSettingsOfThisIme(); - finish(); - return; - } + mStepNumber = determineSetupStepNumberFromLauncher(); } else { mStepNumber = savedInstanceState.getInt(STATE_STEP); } @@ -265,7 +256,6 @@ public final class SetupActivity extends Activity implements View.OnClickListene intent.setAction(Settings.ACTION_INPUT_METHOD_SETTINGS); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); - mWasLanguageAndInputSettingsInvoked = true; } private void invokeSubtypeEnablerOfThisIme() { @@ -313,6 +303,17 @@ public final class SetupActivity extends Activity implements View.OnClickListene return myImi.getId().equals(currentImeId); } + private int determineSetupStepNumberFromLauncher() { + final int stepNumber = determineSetupStepNumber(); + if (stepNumber == STEP_1) { + return STEP_WELCOME; + } + if (stepNumber == STEP_3) { + return STEP_LAUNCHING_IME_SETTINGS; + } + return stepNumber; + } + private int determineSetupStepNumber() { mHandler.cancelPollingImeSettings(); if (!isThisImeEnabled(this)) { @@ -336,10 +337,14 @@ public final class SetupActivity extends Activity implements View.OnClickListene mStepNumber = savedInstanceState.getInt(STATE_STEP); } + private static boolean isInSetupSteps(final int stepNumber) { + return stepNumber >= STEP_1 && stepNumber <= STEP_3; + } + @Override protected void onRestart() { super.onRestart(); - if (mStepNumber != STEP_WELCOME) { + if (isInSetupSteps(mStepNumber)) { mStepNumber = determineSetupStepNumber(); } } @@ -347,6 +352,15 @@ public final class SetupActivity extends Activity implements View.OnClickListene @Override protected void onResume() { super.onResume(); + if (mStepNumber == STEP_LAUNCHING_IME_SETTINGS) { + invokeSettingsOfThisIme(); + mStepNumber = STEP_BACK_FROM_IME_SETTINGS; + return; + } + if (mStepNumber == STEP_BACK_FROM_IME_SETTINGS) { + finish(); + return; + } updateSetupStepView(); } @@ -374,7 +388,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene @Override public void onWindowFocusChanged(final boolean hasFocus) { super.onWindowFocusChanged(hasFocus); - if (hasFocus && mStepNumber != STEP_WELCOME) { + if (hasFocus && isInSetupSteps(mStepNumber)) { mStepNumber = determineSetupStepNumber(); updateSetupStepView(); } @@ -383,7 +397,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene private void updateSetupStepView() { final boolean welcomeScreen = (mStepNumber == STEP_WELCOME); mWelcomeScreen.setVisibility(welcomeScreen ? View.VISIBLE : View.GONE); - mSetupScreen.setVisibility(welcomeScreen ? View.GONE: View.VISIBLE); + mSetupScreen.setVisibility(welcomeScreen ? View.GONE : View.VISIBLE); if (welcomeScreen) { mWelcomeVideoView.setVisibility(View.VISIBLE); mWelcomeVideoView.setVideoURI(mWelcomeVideoUri); @@ -410,7 +424,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene public SetupStep(final int stepNo, final String applicationName, final TextView bulletView, final View stepView, final int title, final int instruction, - final int finishedInstruction,final int actionIcon, final int actionLabel) { + final int finishedInstruction, final int actionIcon, final int actionLabel) { mStepNo = stepNo; mStepView = stepView; mBulletView = bulletView; |