summaryrefslogtreecommitdiffstats
path: root/src/com/android/email/activity
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2014-07-11 10:08:20 -0700
committerTony Mantler <nicoya@google.com>2014-07-11 21:34:55 +0000
commit8c03e2af9f439c6e0c6abb38b0c371da7ccdb72a (patch)
tree6e2791357a8053032e64ea82dc33c8c686be23f5 /src/com/android/email/activity
parent4fb4820223b2b98b2a8517c9231950c0740cb15c (diff)
downloadandroid_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')
-rw-r--r--src/com/android/email/activity/setup/AccountSettings.java52
-rw-r--r--src/com/android/email/activity/setup/AccountSettingsFragment.java102
-rw-r--r--src/com/android/email/activity/setup/AccountSetupFinal.java13
-rw-r--r--src/com/android/email/activity/setup/HeadlessAccountSettingsLoader.java39
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);