summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/email/activity/setup/AccountServerBaseFragment.java15
-rw-r--r--src/com/android/email/activity/setup/AccountSettings.java2
-rw-r--r--src/com/android/email/activity/setup/AccountSetupIncomingFragment.java14
-rw-r--r--src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java14
4 files changed, 35 insertions, 10 deletions
diff --git a/src/com/android/email/activity/setup/AccountServerBaseFragment.java b/src/com/android/email/activity/setup/AccountServerBaseFragment.java
index cf29a3807..8fe66b0b4 100644
--- a/src/com/android/email/activity/setup/AccountServerBaseFragment.java
+++ b/src/com/android/email/activity/setup/AccountServerBaseFragment.java
@@ -47,6 +47,8 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
private static final String BUNDLE_KEY_SETTINGS = "AccountServerBaseFragment.settings";
private static final String BUNDLE_KEY_ACTIVITY_TITLE = "AccountServerBaseFragment.title";
private static final String BUNDLE_KEY_SAVING = "AccountServerBaseFragment.saving";
+ private static final String BUNDLE_KEY_SENDAUTH = "AccountServerBaseFragment.sendAuth";
+ private static final String BUNDLE_KEY_RECVAUTH = "AccountServerBaseFragment.recvAuth";
protected Context mAppContext;
/**
@@ -112,6 +114,8 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
if (savedInstanceState != null) {
mSettingsMode = savedInstanceState.getBoolean(BUNDLE_KEY_SETTINGS);
mSaving = savedInstanceState.getBoolean(BUNDLE_KEY_SAVING);
+ mLoadedSendAuth = savedInstanceState.getParcelable(BUNDLE_KEY_SENDAUTH);
+ mLoadedRecvAuth = savedInstanceState.getParcelable(BUNDLE_KEY_RECVAUTH);
} else if (getArguments() != null) {
mSettingsMode = getArguments().getBoolean(BUNDLE_KEY_SETTINGS);
}
@@ -160,6 +164,8 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
super.onSaveInstanceState(outState);
outState.putString(BUNDLE_KEY_ACTIVITY_TITLE, (String) getActivity().getTitle());
outState.putBoolean(BUNDLE_KEY_SETTINGS, mSettingsMode);
+ outState.putParcelable(BUNDLE_KEY_SENDAUTH, mLoadedSendAuth);
+ outState.putParcelable(BUNDLE_KEY_RECVAUTH, mLoadedRecvAuth);
}
@Override
@@ -178,6 +184,7 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
public void onClick(View v) {
final int viewId = v.getId();
if (viewId == R.id.cancel) {
+ collectUserInputInternal();
getActivity().onBackPressed();
} else if (viewId == R.id.done) {
collectUserInput();
@@ -280,5 +287,11 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
/**
* Collect the user's input into the setup data object. Concrete classes must implement.
*/
- public abstract void collectUserInput();
+ public abstract int collectUserInputInternal();
+
+ public void collectUserInput() {
+ final int phase = collectUserInputInternal();
+ final Callback callback = (Callback) getActivity();
+ callback.onAccountServerUIComplete(phase);
+ }
}
diff --git a/src/com/android/email/activity/setup/AccountSettings.java b/src/com/android/email/activity/setup/AccountSettings.java
index eaf9b232a..cc1c2b26e 100644
--- a/src/com/android/email/activity/setup/AccountSettings.java
+++ b/src/com/android/email/activity/setup/AccountSettings.java
@@ -597,7 +597,7 @@ public class AccountSettings extends PreferenceActivity implements
* Forcefully go backward in the stack. This may potentially discard unsaved settings.
*/
private void forceBack() {
- onBackPressed();
+ super.onBackPressed();
}
@Override
diff --git a/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java b/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
index fb815e1fa..eb0a1a9ad 100644
--- a/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
@@ -22,6 +22,7 @@ import android.content.Intent;
import android.content.Loader;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Parcel;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -398,7 +399,13 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
mClientCertificateSelector.setCertificate(recvAuth.mClientCertAlias);
}
- mLoadedRecvAuth = recvAuth;
+ // Make a deep copy of the HostAuth to compare with later
+ final Parcel parcel = Parcel.obtain();
+ parcel.writeParcelable(recvAuth, recvAuth.describeContents());
+ parcel.setDataPosition(0);
+ mLoadedRecvAuth = parcel.readParcelable(HostAuth.class.getClassLoader());
+ parcel.recycle();
+
mLoaded = true;
validateFields();
}
@@ -530,7 +537,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
* Entry point from Activity, when "next" button is clicked
*/
@Override
- public void collectUserInput() {
+ public int collectUserInputInternal() {
final Account account = mSetupData.getAccount();
// Make sure delete policy is an valid option before using it; otherwise, the results are
@@ -568,8 +575,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
}
recvAuth.mClientCertAlias = mClientCertificateSelector.getCertificate();
- final Callback callback = (Callback) getActivity();
- callback.onAccountServerUIComplete(SetupDataFragment.CHECK_INCOMING);
+ return SetupDataFragment.CHECK_INCOMING;
}
@Override
diff --git a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
index 9df9b012d..c66b1e978 100644
--- a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.Loader;
import android.os.Bundle;
+import android.os.Parcel;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -256,7 +257,13 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
updatePortFromSecurityType();
}
- mLoadedSendAuth = sendAuth;
+ // Make a deep copy of the HostAuth to compare with later
+ final Parcel parcel = Parcel.obtain();
+ parcel.writeParcelable(sendAuth, sendAuth.describeContents());
+ parcel.setDataPosition(0);
+ mLoadedSendAuth = parcel.readParcelable(HostAuth.class.getClassLoader());
+ parcel.recycle();
+
mLoaded = true;
validateFields();
}
@@ -362,7 +369,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
* Entry point from Activity, when "next" button is clicked
*/
@Override
- public void collectUserInput() {
+ public int collectUserInputInternal() {
final Account account = mSetupData.getAccount();
final HostAuth sendAuth = account.getOrCreateHostAuthSend(mAppContext);
@@ -387,8 +394,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
sendAuth.setConnection(mBaseScheme, serverAddress, serverPort, securityType);
sendAuth.mDomain = null;
- final Callback callback = (Callback) getActivity();
- callback.onAccountServerUIComplete(SetupDataFragment.CHECK_OUTGOING);
+ return SetupDataFragment.CHECK_OUTGOING;
}
@Override