diff --git a/src/com/android/email/activity/setup/AccountSetupCredentialsFragment.java b/src/com/android/email/activity/setup/AccountSetupCredentialsFragment.java index 4955fed8d..dc1f5babd 100644 --- a/src/com/android/email/activity/setup/AccountSetupCredentialsFragment.java +++ b/src/com/android/email/activity/setup/AccountSetupCredentialsFragment.java @@ -139,10 +139,14 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment @Override public void onDestroy() { super.onDestroy(); - mImapPasswordText.removeTextChangedListener(mValidationTextWatcher); - mImapPasswordText = null; - mRegularPasswordText.removeTextChangedListener(mValidationTextWatcher); - mRegularPasswordText = null; + if (mImapPasswordText != null) { + mImapPasswordText.removeTextChangedListener(mValidationTextWatcher); + mImapPasswordText = null; + } + if (mRegularPasswordText != null) { + mRegularPasswordText.removeTextChangedListener(mValidationTextWatcher); + mRegularPasswordText = null; + } } public void validatePassword() { diff --git a/src/com/android/email/activity/setup/AccountSetupFinal.java b/src/com/android/email/activity/setup/AccountSetupFinal.java index cc231ce30..ef82ca509 100644 --- a/src/com/android/email/activity/setup/AccountSetupFinal.java +++ b/src/com/android/email/activity/setup/AccountSetupFinal.java @@ -212,6 +212,8 @@ public class AccountSetupFinal extends AccountSetupActivity mIsPreConfiguredProvider = savedInstanceState.getBoolean(SAVESTATE_KEY_IS_PRE_CONFIGURED); mSkipAutoDiscover = savedInstanceState.getBoolean(SAVESTATE_KEY_SKIP_AUTO_DISCOVER); + // I don't know why this view state doesn't get restored + updateHeadline(); } else { // If we're not restoring from a previous state, we want to configure the initial screen diff --git a/src/com/android/email/activity/setup/AccountSetupFragment.java b/src/com/android/email/activity/setup/AccountSetupFragment.java index f38e909a1..805dbc5c8 100644 --- a/src/com/android/email/activity/setup/AccountSetupFragment.java +++ b/src/com/android/email/activity/setup/AccountSetupFragment.java @@ -17,6 +17,7 @@ package com.android.email.activity.setup; import android.app.Fragment; +import android.os.Bundle; /** * Superclass for setup UI fragments. @@ -24,12 +25,27 @@ import android.app.Fragment; * we can unwind things correctly when the user navigates the back stack. */ public class AccountSetupFragment extends Fragment { + private static final String SAVESTATE_STATE = "AccountSetupFragment.state"; private int mState; public interface Callback { void setNextButtonEnabled(boolean enabled); } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState != null) { + mState = savedInstanceState.getInt(SAVESTATE_STATE); + } + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(SAVESTATE_STATE, mState); + } + public void setState(int state) { mState = state; }