Merge "Fix cancel handling in account settings screens" into ub-mail-master
This commit is contained in:
commit
2ac92114ad
|
@ -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_SETTINGS = "AccountServerBaseFragment.settings";
|
||||||
private static final String BUNDLE_KEY_ACTIVITY_TITLE = "AccountServerBaseFragment.title";
|
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_SAVING = "AccountServerBaseFragment.saving";
|
||||||
|
private static final String BUNDLE_KEY_SENDAUTH = "AccountServerBaseFragment.sendAuth";
|
||||||
|
private static final String BUNDLE_KEY_RECVAUTH = "AccountServerBaseFragment.recvAuth";
|
||||||
|
|
||||||
protected Context mAppContext;
|
protected Context mAppContext;
|
||||||
/**
|
/**
|
||||||
|
@ -112,6 +114,8 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
mSettingsMode = savedInstanceState.getBoolean(BUNDLE_KEY_SETTINGS);
|
mSettingsMode = savedInstanceState.getBoolean(BUNDLE_KEY_SETTINGS);
|
||||||
mSaving = savedInstanceState.getBoolean(BUNDLE_KEY_SAVING);
|
mSaving = savedInstanceState.getBoolean(BUNDLE_KEY_SAVING);
|
||||||
|
mLoadedSendAuth = savedInstanceState.getParcelable(BUNDLE_KEY_SENDAUTH);
|
||||||
|
mLoadedRecvAuth = savedInstanceState.getParcelable(BUNDLE_KEY_RECVAUTH);
|
||||||
} else if (getArguments() != null) {
|
} else if (getArguments() != null) {
|
||||||
mSettingsMode = getArguments().getBoolean(BUNDLE_KEY_SETTINGS);
|
mSettingsMode = getArguments().getBoolean(BUNDLE_KEY_SETTINGS);
|
||||||
}
|
}
|
||||||
|
@ -160,6 +164,8 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
outState.putString(BUNDLE_KEY_ACTIVITY_TITLE, (String) getActivity().getTitle());
|
outState.putString(BUNDLE_KEY_ACTIVITY_TITLE, (String) getActivity().getTitle());
|
||||||
outState.putBoolean(BUNDLE_KEY_SETTINGS, mSettingsMode);
|
outState.putBoolean(BUNDLE_KEY_SETTINGS, mSettingsMode);
|
||||||
|
outState.putParcelable(BUNDLE_KEY_SENDAUTH, mLoadedSendAuth);
|
||||||
|
outState.putParcelable(BUNDLE_KEY_RECVAUTH, mLoadedRecvAuth);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -178,6 +184,7 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
final int viewId = v.getId();
|
final int viewId = v.getId();
|
||||||
if (viewId == R.id.cancel) {
|
if (viewId == R.id.cancel) {
|
||||||
|
collectUserInputInternal();
|
||||||
getActivity().onBackPressed();
|
getActivity().onBackPressed();
|
||||||
} else if (viewId == R.id.done) {
|
} else if (viewId == R.id.done) {
|
||||||
collectUserInput();
|
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.
|
* 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -597,7 +597,7 @@ public class AccountSettings extends PreferenceActivity implements
|
||||||
* Forcefully go backward in the stack. This may potentially discard unsaved settings.
|
* Forcefully go backward in the stack. This may potentially discard unsaved settings.
|
||||||
*/
|
*/
|
||||||
private void forceBack() {
|
private void forceBack() {
|
||||||
onBackPressed();
|
super.onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -22,6 +22,7 @@ import android.content.Intent;
|
||||||
import android.content.Loader;
|
import android.content.Loader;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Parcel;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -398,7 +399,13 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
||||||
mClientCertificateSelector.setCertificate(recvAuth.mClientCertAlias);
|
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;
|
mLoaded = true;
|
||||||
validateFields();
|
validateFields();
|
||||||
}
|
}
|
||||||
|
@ -530,7 +537,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
||||||
* Entry point from Activity, when "next" button is clicked
|
* Entry point from Activity, when "next" button is clicked
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void collectUserInput() {
|
public int collectUserInputInternal() {
|
||||||
final Account account = mSetupData.getAccount();
|
final Account account = mSetupData.getAccount();
|
||||||
|
|
||||||
// Make sure delete policy is an valid option before using it; otherwise, the results are
|
// 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();
|
recvAuth.mClientCertAlias = mClientCertificateSelector.getCertificate();
|
||||||
|
|
||||||
final Callback callback = (Callback) getActivity();
|
return SetupDataFragment.CHECK_INCOMING;
|
||||||
callback.onAccountServerUIComplete(SetupDataFragment.CHECK_INCOMING);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -21,6 +21,7 @@ import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.Loader;
|
import android.content.Loader;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Parcel;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -256,7 +257,13 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
updatePortFromSecurityType();
|
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;
|
mLoaded = true;
|
||||||
validateFields();
|
validateFields();
|
||||||
}
|
}
|
||||||
|
@ -362,7 +369,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
* Entry point from Activity, when "next" button is clicked
|
* Entry point from Activity, when "next" button is clicked
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void collectUserInput() {
|
public int collectUserInputInternal() {
|
||||||
final Account account = mSetupData.getAccount();
|
final Account account = mSetupData.getAccount();
|
||||||
final HostAuth sendAuth = account.getOrCreateHostAuthSend(mAppContext);
|
final HostAuth sendAuth = account.getOrCreateHostAuthSend(mAppContext);
|
||||||
|
|
||||||
|
@ -387,8 +394,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
|
||||||
sendAuth.setConnection(mBaseScheme, serverAddress, serverPort, securityType);
|
sendAuth.setConnection(mBaseScheme, serverAddress, serverPort, securityType);
|
||||||
sendAuth.mDomain = null;
|
sendAuth.mDomain = null;
|
||||||
|
|
||||||
final Callback callback = (Callback) getActivity();
|
return SetupDataFragment.CHECK_OUTGOING;
|
||||||
callback.onAccountServerUIComplete(SetupDataFragment.CHECK_OUTGOING);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue