From 85d24511480ab25f081fc6904894505f50b13eba Mon Sep 17 00:00:00 2001 From: Tony Mantler Date: Mon, 10 Mar 2014 16:43:10 -0700 Subject: [PATCH] When opening account settings, divert to AccountSecurity if needed b/12843721 Change-Id: Ic7ae99a8f3ddba33d224387921a90624c37bc8b5 --- .../activity/setup/AccountSettingsFragment.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/com/android/email/activity/setup/AccountSettingsFragment.java b/src/com/android/email/activity/setup/AccountSettingsFragment.java index 4aaae1c8a..628410f8f 100644 --- a/src/com/android/email/activity/setup/AccountSettingsFragment.java +++ b/src/com/android/email/activity/setup/AccountSettingsFragment.java @@ -200,7 +200,7 @@ public class AccountSettingsFragment extends PreferenceFragment super.onActivityCreated(savedInstanceState); final Bundle args = new Bundle(1); args.putLong(AccountLoaderCallbacks.ARG_ACCOUNT_ID, mAccountId); - getLoaderManager().initLoader(0, args, new AccountLoaderCallbacks()); + getLoaderManager().initLoader(0, args, new AccountLoaderCallbacks(getActivity())); } @Override @@ -424,6 +424,11 @@ public class AccountSettingsFragment extends PreferenceFragment private class AccountLoaderCallbacks implements LoaderManager.LoaderCallbacks> { public static final String ARG_ACCOUNT_ID = "accountId"; + private final Context mContext; + + private AccountLoaderCallbacks(Context context) { + mContext = context; + } @Override public void onLoadFinished(Loader> loader, Map data) { @@ -436,6 +441,16 @@ public class AccountSettingsFragment extends PreferenceFragment mUiAccount = (com.android.mail.providers.Account) data.get(AccountLoader.RESULT_KEY_UIACCOUNT); mAccount = (Account) data.get(AccountLoader.RESULT_KEY_ACCOUNT); + + if (mAccount != null && (mAccount.mFlags & Account.FLAGS_SECURITY_HOLD) != 0) { + final Intent i = AccountSecurity.actionUpdateSecurityIntent(mContext, + mAccount.getId(), true); + mContext.startActivity(i); + mSaveOnExit = false; + mCallback.abandonEdit(); + return; + } + final Folder inbox = (Folder) data.get(AccountLoader.RESULT_KEY_INBOX); if (mUiAccount == null || mAccount == null || inbox == null) {