diff options
author | Tony Mantler <nicoya@google.com> | 2014-07-11 10:08:20 -0700 |
---|---|---|
committer | Tony Mantler <nicoya@google.com> | 2014-07-11 21:34:55 +0000 |
commit | 8c03e2af9f439c6e0c6abb38b0c371da7ccdb72a (patch) | |
tree | 6e2791357a8053032e64ea82dc33c8c686be23f5 /src/com/android/email/activity | |
parent | 4fb4820223b2b98b2a8517c9231950c0740cb15c (diff) | |
download | android_packages_apps_Email-8c03e2af9f439c6e0c6abb38b0c371da7ccdb72a.tar.gz android_packages_apps_Email-8c03e2af9f439c6e0c6abb38b0c371da7ccdb72a.tar.bz2 android_packages_apps_Email-8c03e2af9f439c6e0c6abb38b0c371da7ccdb72a.zip |
Remove direct entry points to AccountSettings
b/16240332
Change-Id: I9bc3f9a2e0b7faa4d8875a9ac7d6d585a65d9733
Diffstat (limited to 'src/com/android/email/activity')
4 files changed, 37 insertions, 169 deletions
diff --git a/src/com/android/email/activity/setup/AccountSettings.java b/src/com/android/email/activity/setup/AccountSettings.java index e68c0bfd9..771d3c723 100644 --- a/src/com/android/email/activity/setup/AccountSettings.java +++ b/src/com/android/email/activity/setup/AccountSettings.java @@ -18,7 +18,6 @@ package com.android.email.activity.setup; import android.app.ActionBar; import android.app.Fragment; -import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -53,12 +52,8 @@ public class AccountSettings extends MailPreferenceActivity { // Intent extras for our internal activity launch private static final String EXTRA_ENABLE_DEBUG = "AccountSettings.enable_debug"; - private static final String EXTRA_LOGIN_WARNING_FOR_ACCOUNT = "AccountSettings.for_account"; - private static final String EXTRA_LOGIN_WARNING_REASON_FOR_ACCOUNT = - "AccountSettings.for_account_reason"; // STOPSHIP: Do not ship with the debug menu allowed. private static final boolean DEBUG_MENU_ALLOWED = false; - public static final String EXTRA_NO_ACCOUNTS = "AccountSettings.no_account"; // Intent extras for launch directly from system account manager // NOTE: This string must match the one in res/xml/account_preferences.xml @@ -78,27 +73,6 @@ public class AccountSettings extends MailPreferenceActivity { private Uri mFeedbackUri; private MenuItem mFeedbackMenuItem; - /** - * Create and return an intent to display (and edit) settings for a specific account, or -1 - * for any/all accounts. If an account name string is provided, a warning dialog will be - * displayed as well. - */ - public static Intent createAccountSettingsIntent(final Context context, final long accountId, - final String loginWarningAccountName, final String loginWarningReason) { - final Uri.Builder b = IntentUtilities.createActivityIntentUrlBuilder( - IntentUtilities.PATH_SETTINGS); - IntentUtilities.setAccountId(b, accountId); - final Intent i = new Intent(Intent.ACTION_EDIT, b.build()); - i.setPackage(context.getPackageName()); - if (loginWarningAccountName != null) { - i.putExtra(EXTRA_LOGIN_WARNING_FOR_ACCOUNT, loginWarningAccountName); - } - if (loginWarningReason != null) { - i.putExtra(EXTRA_LOGIN_WARNING_REASON_FOR_ACCOUNT, loginWarningReason); - } - return i; - } - @Override public Intent getIntent() { final Intent intent = super.getIntent(); @@ -116,17 +90,6 @@ public class AccountSettings extends MailPreferenceActivity { return modIntent; } - - /** - * Launch generic settings and pre-enable the debug preferences - */ - public static void actionSettingsWithDebug(Context fromContext) { - final Intent i = new Intent(fromContext, AccountSettings.class); - i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - i.putExtra(EXTRA_ENABLE_DEBUG, true); - fromContext.startActivity(i); - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -149,20 +112,11 @@ public class AccountSettings extends MailPreferenceActivity { } else if (i.hasExtra(EditSettingsExtras.EXTRA_FOLDER)) { launchMailboxSettings(i); return; - } else if (i.hasExtra(EXTRA_NO_ACCOUNTS)) { - final Intent setupIntent = AccountSetupFinal.actionNewAccountWithResultIntent(this); - startActivity(setupIntent); - finish(); - return; } else { // Otherwise, we're called from within the Email app and look for our extras final long accountId = IntentUtilities.getAccountIdFromIntent(i); if (accountId != -1) { - String loginWarningAccount = i.getStringExtra(EXTRA_LOGIN_WARNING_FOR_ACCOUNT); - String loginWarningReason = - i.getStringExtra(EXTRA_LOGIN_WARNING_REASON_FOR_ACCOUNT); - final Bundle args = AccountSettingsFragment.buildArguments(accountId, - loginWarningAccount, loginWarningReason); + final Bundle args = AccountSettingsFragment.buildArguments(accountId); startPreferencePanel(AccountSettingsFragment.class.getName(), args, 0, null, null, 0); } @@ -224,9 +178,6 @@ public class AccountSettings extends MailPreferenceActivity { // when necessary. onBackPressed(); break; - case R.id.add_new_account: - onAddNewAccount(); - break; case R.id.feedback_menu_item: Utils.sendFeedback(this, mFeedbackUri, false /* reportingProblem */); break; @@ -242,7 +193,6 @@ public class AccountSettings extends MailPreferenceActivity { return true; } - private void launchMailboxSettings(Intent intent) { final Folder folder = intent.getParcelableExtra(EditSettingsExtras.EXTRA_FOLDER); diff --git a/src/com/android/email/activity/setup/AccountSettingsFragment.java b/src/com/android/email/activity/setup/AccountSettingsFragment.java index 9f5425259..a234abfdf 100644 --- a/src/com/android/email/activity/setup/AccountSettingsFragment.java +++ b/src/com/android/email/activity/setup/AccountSettingsFragment.java @@ -17,14 +17,10 @@ package com.android.email.activity.setup; import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.app.DialogFragment; import android.app.LoaderManager; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.Loader; import android.content.res.Resources; @@ -44,13 +40,9 @@ import android.preference.Preference.OnPreferenceClickListener; import android.provider.CalendarContract; import android.provider.ContactsContract; import android.provider.Settings; -import android.text.SpannableString; import android.text.TextUtils; -import android.text.method.LinkMovementMethod; -import android.text.util.Linkify; import android.view.Menu; import android.view.MenuInflater; -import android.widget.TextView; import com.android.email.R; import com.android.email.SecurityPolicy; @@ -90,9 +82,6 @@ public class AccountSettingsFragment extends MailAccountPrefsFragment implements Preference.OnPreferenceChangeListener { private static final String ARG_ACCOUNT_ID = "account_id"; - private static final String ARG_LOGIN_WARNING_FOR_ACCOUNT = "warning_for_account"; - private static final String ARG_LOGIN_WARNING_REASON_FOR_ACCOUNT = "warning_for_account_reason"; - public static final String PREFERENCE_DESCRIPTION = "account_description"; private static final String PREFERENCE_NAME = "account_name"; @@ -162,15 +151,11 @@ public class AccountSettingsFragment extends MailAccountPrefsFragment } /** - * When launching for the login warning, we don't have the account email address, so we use the - * account ID, along with a few strings explaining the warning. + * If launching with an account ID, use this method to build the arguments. */ - public static Bundle buildArguments(final long accountId, final String warningAccount, - final String warningReason) { - final Bundle b = new Bundle(3); + public static Bundle buildArguments(final long accountId) { + final Bundle b = new Bundle(1); b.putLong(ARG_ACCOUNT_ID, accountId); - b.putString(ARG_LOGIN_WARNING_FOR_ACCOUNT, warningAccount); - b.putString(ARG_LOGIN_WARNING_REASON_FOR_ACCOUNT, warningReason); return b; } @@ -239,19 +224,6 @@ public class AccountSettingsFragment extends MailAccountPrefsFragment getArguments().getLong(ARG_ACCOUNT_ID, -1)); } getLoaderManager().initLoader(0, args, new AccountLoaderCallbacks(getActivity())); - - if (savedInstanceState == null) { - final String loginWarningAccount = - getArguments().getString(ARG_LOGIN_WARNING_FOR_ACCOUNT); - final String loginWarningReason = - getArguments().getString(ARG_LOGIN_WARNING_REASON_FOR_ACCOUNT); - if (loginWarningAccount != null) { - // Show dialog (first time only - don't re-show on a rotation) - LoginWarningDialog dialog = - LoginWarningDialog.newInstance(loginWarningAccount, loginWarningReason); - dialog.show(getFragmentManager(), "loginwarning"); - } - } } @Override @@ -973,72 +945,4 @@ public class AccountSettingsFragment extends MailAccountPrefsFragment AccountServerSettingsActivity.getIntentForOutgoing(getActivity(), account); getActivity().startActivity(intent); } - - /** - * Dialog briefly shown in some cases, to indicate the user that login failed. If the user - * clicks OK, we simply dismiss the dialog, leaving the user in the account settings for - * that account; If the user clicks "cancel", we exit account settings. - */ - public static class LoginWarningDialog extends DialogFragment - implements DialogInterface.OnClickListener { - private static final String BUNDLE_KEY_ACCOUNT_NAME = "account_name"; - private String mReason; - - // Public no-args constructor needed for fragment re-instantiation - public LoginWarningDialog() {} - - /** - * Create a new dialog. - */ - public static LoginWarningDialog newInstance(String accountName, String reason) { - final LoginWarningDialog dialog = new LoginWarningDialog(); - final Bundle b = new Bundle(1); - b.putString(BUNDLE_KEY_ACCOUNT_NAME, accountName); - dialog.setArguments(b); - dialog.mReason = reason; - return dialog; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final String accountName = getArguments().getString(BUNDLE_KEY_ACCOUNT_NAME); - - final Context context = getActivity(); - final Resources res = context.getResources(); - final AlertDialog.Builder b = new AlertDialog.Builder(context); - b.setTitle(R.string.account_settings_login_dialog_title); - b.setIconAttribute(android.R.attr.alertDialogIcon); - if (mReason != null) { - final TextView message = new TextView(context); - final String alert = res.getString( - R.string.account_settings_login_dialog_reason_fmt, accountName, mReason); - SpannableString spannableAlertString = new SpannableString(alert); - Linkify.addLinks(spannableAlertString, Linkify.WEB_URLS); - message.setText(spannableAlertString); - // There must be a better way than specifying size/padding this way - // It does work and look right, though - final int textSize = res.getDimensionPixelSize(R.dimen.dialog_text_size); - message.setTextSize(textSize); - final int paddingLeft = res.getDimensionPixelSize(R.dimen.dialog_padding_left); - final int paddingOther = res.getDimensionPixelSize(R.dimen.dialog_padding_other); - message.setPadding(paddingLeft, paddingOther, paddingOther, paddingOther); - message.setMovementMethod(LinkMovementMethod.getInstance()); - b.setView(message); - } else { - b.setMessage(res.getString(R.string.account_settings_login_dialog_content_fmt, - accountName)); - } - b.setPositiveButton(android.R.string.ok, this); - b.setNegativeButton(android.R.string.cancel, this); - return b.create(); - } - - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - if (which == DialogInterface.BUTTON_NEGATIVE) { - getActivity().finish(); - } - } - } } diff --git a/src/com/android/email/activity/setup/AccountSetupFinal.java b/src/com/android/email/activity/setup/AccountSetupFinal.java index acbba4d0e..6c04f62a6 100644 --- a/src/com/android/email/activity/setup/AccountSetupFinal.java +++ b/src/com/android/email/activity/setup/AccountSetupFinal.java @@ -63,9 +63,6 @@ public class AccountSetupFinal extends AccountSetupActivity AccountServerBaseFragment.Callback, AccountSetupCredentialsFragment.Callback, DuplicateAccountDialogFragment.Callback, AccountSetupABFragment.Callback { - // Set to false before shipping, logs PII - private final static boolean ENTER_DEBUG_SCREEN = false; - /** * Direct access for forcing account creation * For use by continuous automated test system (e.g. in conjunction with monkey tests) @@ -556,16 +553,6 @@ public class AccountSetupFinal extends AccountSetupActivity } // else fall through case STATE_BASICS_POST: if (shouldDivertToManual()) { - // Alternate entry to the debug options screen (for devices without a physical - // keyboard): - // Username: d@d.d - if (ENTER_DEBUG_SCREEN) { - if ("d@d.d".equals(mSetupData.getEmail())) { - AccountSettings.actionSettingsWithDebug(this); - return; - } - } - mSkipAutoDiscover = true; mIsPreConfiguredProvider = false; mState = STATE_TYPE; diff --git a/src/com/android/email/activity/setup/HeadlessAccountSettingsLoader.java b/src/com/android/email/activity/setup/HeadlessAccountSettingsLoader.java index 8c51fd847..09eedd9a5 100644 --- a/src/com/android/email/activity/setup/HeadlessAccountSettingsLoader.java +++ b/src/com/android/email/activity/setup/HeadlessAccountSettingsLoader.java @@ -1,20 +1,40 @@ package com.android.email.activity.setup; import android.app.Activity; +import android.app.LoaderManager; import android.content.Context; import android.content.Intent; +import android.content.Loader; +import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import com.android.emailcommon.provider.Account; +import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.utility.IntentUtilities; +import com.android.mail.ui.MailAsyncTaskLoader; /** * This activity is headless. It exists to load the Account object from the given account ID and - * then starts the {@link AccountSettings} activity with the appropriate fragment showing in place. + * then starts the {@link AccountServerSettingsActivity} activity with the incoming/outgoing + * settings fragment */ public class HeadlessAccountSettingsLoader extends Activity { + public static Uri getIncomingSettingsUri(long accountId) { + final Uri.Builder baseUri = Uri.parse("auth://" + EmailContent.EMAIL_PACKAGE_NAME + + ".ACCOUNT_SETTINGS/incoming/").buildUpon(); + IntentUtilities.setAccountId(baseUri, accountId); + return baseUri.build(); + } + + public static Uri getOutgoingSettingsUri(long accountId) { + final Uri.Builder baseUri = Uri.parse("auth://" + EmailContent.EMAIL_PACKAGE_NAME + + ".ACCOUNT_SETTINGS/outgoing/").buildUpon(); + IntentUtilities.setAccountId(baseUri, accountId); + return baseUri.build(); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -22,8 +42,9 @@ public class HeadlessAccountSettingsLoader extends Activity { final Intent i = getIntent(); final long accountID = IntentUtilities.getAccountIdFromIntent(i); - if ("incoming".equals(i.getData().getLastPathSegment())) { - new LoadAccountIncomingSettingsAsyncTask(getApplicationContext()) + if (savedInstanceState == null) { + new LoadAccountIncomingSettingsAsyncTask(getApplicationContext(), + "incoming".equals(i.getData().getLastPathSegment())) .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, accountID); } } @@ -34,9 +55,11 @@ public class HeadlessAccountSettingsLoader extends Activity { */ private class LoadAccountIncomingSettingsAsyncTask extends AsyncTask<Long, Void, Account> { private final Context mContext; + private final boolean mIncoming; - private LoadAccountIncomingSettingsAsyncTask(Context context) { + private LoadAccountIncomingSettingsAsyncTask(Context context, boolean incoming) { mContext = context; + mIncoming = incoming; } protected Account doInBackground(Long... params) { @@ -45,8 +68,12 @@ public class HeadlessAccountSettingsLoader extends Activity { protected void onPostExecute(Account result) { // create an Intent to view a new activity - final Intent intent = - AccountServerSettingsActivity.getIntentForIncoming(mContext, result); + final Intent intent; + if (mIncoming) { + intent = AccountServerSettingsActivity.getIntentForIncoming(mContext, result); + } else { + intent = AccountServerSettingsActivity.getIntentForOutgoing(mContext, result); + } intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); |