Move Account into its own top-level class
Change-Id: Ide7c991b7d4d418dbe17164421425bf898ba64ee
diff --git a/emailcommon/src/com/android/emailcommon/provider/Account.java b/emailcommon/src/com/android/emailcommon/provider/Account.java
new file mode 100644
index 0000000..e7de948
--- /dev/null
+++ b/emailcommon/src/com/android/emailcommon/provider/Account.java
@@ -0,0 +1,938 @@
+package com.android.emailcommon.provider;
+
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.os.RemoteException;
+
+import com.android.emailcommon.provider.EmailContent.AccountColumns;
+import com.android.emailcommon.provider.EmailContent.MailboxColumns;
+import com.android.emailcommon.provider.EmailContent.Message;
+import com.android.emailcommon.provider.EmailContent.MessageColumns;
+import com.android.emailcommon.utility.Utility;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public final class Account extends EmailContent implements AccountColumns, Parcelable {
+ public static final String TABLE_NAME = "Account";
+ @SuppressWarnings("hiding")
+ public static final Uri CONTENT_URI = Uri.parse(EmailContent.CONTENT_URI + "/account");
+ public static final Uri ADD_TO_FIELD_URI =
+ Uri.parse(EmailContent.CONTENT_URI + "/accountIdAddToField");
+ public static final Uri RESET_NEW_MESSAGE_COUNT_URI =
+ Uri.parse(EmailContent.CONTENT_URI + "/resetNewMessageCount");
+ public static final Uri NOTIFIER_URI =
+ Uri.parse(EmailContent.CONTENT_NOTIFIER_URI + "/account");
+
+ // Define all pseudo account IDs here to avoid conflict with one another.
+ /**
+ * Pseudo account ID to represent a "combined account" that includes messages and mailboxes
+ * from all defined accounts.
+ *
+ * <em>IMPORTANT</em>: This must never be stored to the database.
+ */
+ public static final long ACCOUNT_ID_COMBINED_VIEW = 0x1000000000000000L;
+ /**
+ * Pseudo account ID to represent "no account". This may be used any time the account ID
+ * may not be known or when we want to specifically select "no" account.
+ *
+ * <em>IMPORTANT</em>: This must never be stored to the database.
+ */
+ public static final long NO_ACCOUNT = -1L;
+
+ // Whether or not the user has asked for notifications of new mail in this account
+ public final static int FLAGS_NOTIFY_NEW_MAIL = 1<<0;
+ // Whether or not the user has asked for vibration notifications with all new mail
+ public final static int FLAGS_VIBRATE_ALWAYS = 1<<1;
+ // Bit mask for the account's deletion policy (see DELETE_POLICY_x below)
+ public static final int FLAGS_DELETE_POLICY_MASK = 1<<2 | 1<<3;
+ public static final int FLAGS_DELETE_POLICY_SHIFT = 2;
+ // Whether the account is in the process of being created; any account reconciliation code
+ // MUST ignore accounts with this bit set; in addition, ContentObservers for this data
+ // SHOULD consider the state of this flag during operation
+ public static final int FLAGS_INCOMPLETE = 1<<4;
+ // Security hold is used when the device is not in compliance with security policies
+ // required by the server; in this state, the user MUST be alerted to the need to update
+ // security settings. Sync adapters SHOULD NOT attempt to sync when this flag is set.
+ public static final int FLAGS_SECURITY_HOLD = 1<<5;
+ // Whether or not the user has asked for vibration notifications when the ringer is silent
+ public static final int FLAGS_VIBRATE_WHEN_SILENT = 1<<6;
+ // Whether the account supports "smart forward" (i.e. the server appends the original
+ // message along with any attachments to the outgoing message)
+ public static final int FLAGS_SUPPORTS_SMART_FORWARD = 1<<7;
+ // Whether the account should try to cache attachments in the background
+ public static final int FLAGS_BACKGROUND_ATTACHMENTS = 1<<8;
+ // Available to sync adapter
+ public static final int FLAGS_SYNC_ADAPTER = 1<<9;
+ // Sync disabled is a status commanded by the server; the sync adapter SHOULD NOT try to
+ // sync mailboxes in this account automatically. A manual sync request to sync a mailbox
+ // with sync disabled SHOULD try to sync and report any failure result via the UI.
+ public static final int FLAGS_SYNC_DISABLED = 1<<10;
+
+ // Deletion policy (see FLAGS_DELETE_POLICY_MASK, above)
+ public static final int DELETE_POLICY_NEVER = 0;
+ public static final int DELETE_POLICY_7DAYS = 1<<0; // not supported
+ public static final int DELETE_POLICY_ON_DELETE = 1<<1;
+
+ // Sentinel values for the mSyncInterval field of both Account records
+ public static final int CHECK_INTERVAL_NEVER = -1;
+ public static final int CHECK_INTERVAL_PUSH = -2;
+
+ public String mDisplayName;
+ public String mEmailAddress;
+ public String mSyncKey;
+ public int mSyncLookback;
+ public int mSyncInterval;
+ public long mHostAuthKeyRecv;
+ public long mHostAuthKeySend;
+ public int mFlags;
+ public boolean mIsDefault; // note: callers should use getDefaultAccountId()
+ public String mCompatibilityUuid;
+ public String mSenderName;
+ public String mRingtoneUri;
+ public String mProtocolVersion;
+ public int mNewMessageCount;
+ public String mSecuritySyncKey;
+ public String mSignature;
+ public long mPolicyKey;
+
+ // Convenience for creating/working with an account
+ public transient HostAuth mHostAuthRecv;
+ public transient HostAuth mHostAuthSend;
+ public transient Policy mPolicy;
+ // Might hold the corresponding AccountManager account structure
+ public transient android.accounts.Account mAmAccount;
+
+ public static final int CONTENT_ID_COLUMN = 0;
+ public static final int CONTENT_DISPLAY_NAME_COLUMN = 1;
+ public static final int CONTENT_EMAIL_ADDRESS_COLUMN = 2;
+ public static final int CONTENT_SYNC_KEY_COLUMN = 3;
+ public static final int CONTENT_SYNC_LOOKBACK_COLUMN = 4;
+ public static final int CONTENT_SYNC_INTERVAL_COLUMN = 5;
+ public static final int CONTENT_HOST_AUTH_KEY_RECV_COLUMN = 6;
+ public static final int CONTENT_HOST_AUTH_KEY_SEND_COLUMN = 7;
+ public static final int CONTENT_FLAGS_COLUMN = 8;
+ public static final int CONTENT_IS_DEFAULT_COLUMN = 9;
+ public static final int CONTENT_COMPATIBILITY_UUID_COLUMN = 10;
+ public static final int CONTENT_SENDER_NAME_COLUMN = 11;
+ public static final int CONTENT_RINGTONE_URI_COLUMN = 12;
+ public static final int CONTENT_PROTOCOL_VERSION_COLUMN = 13;
+ public static final int CONTENT_NEW_MESSAGE_COUNT_COLUMN = 14;
+ public static final int CONTENT_SECURITY_SYNC_KEY_COLUMN = 15;
+ public static final int CONTENT_SIGNATURE_COLUMN = 16;
+ public static final int CONTENT_POLICY_KEY = 17;
+
+ public static final String[] CONTENT_PROJECTION = new String[] {
+ RECORD_ID, AccountColumns.DISPLAY_NAME,
+ AccountColumns.EMAIL_ADDRESS, AccountColumns.SYNC_KEY, AccountColumns.SYNC_LOOKBACK,
+ AccountColumns.SYNC_INTERVAL, AccountColumns.HOST_AUTH_KEY_RECV,
+ AccountColumns.HOST_AUTH_KEY_SEND, AccountColumns.FLAGS, AccountColumns.IS_DEFAULT,
+ AccountColumns.COMPATIBILITY_UUID, AccountColumns.SENDER_NAME,
+ AccountColumns.RINGTONE_URI, AccountColumns.PROTOCOL_VERSION,
+ AccountColumns.NEW_MESSAGE_COUNT, AccountColumns.SECURITY_SYNC_KEY,
+ AccountColumns.SIGNATURE, AccountColumns.POLICY_KEY
+ };
+
+ public static final int CONTENT_MAILBOX_TYPE_COLUMN = 1;
+
+ /**
+ * This projection is for listing account id's only
+ */
+ public static final String[] ID_TYPE_PROJECTION = new String[] {
+ RECORD_ID, MailboxColumns.TYPE
+ };
+
+ public static final int ACCOUNT_FLAGS_COLUMN_ID = 0;
+ public static final int ACCOUNT_FLAGS_COLUMN_FLAGS = 1;
+ public static final String[] ACCOUNT_FLAGS_PROJECTION = new String[] {
+ AccountColumns.ID, AccountColumns.FLAGS};
+
+ public static final String MAILBOX_SELECTION =
+ MessageColumns.MAILBOX_KEY + " =?";
+
+ public static final String UNREAD_COUNT_SELECTION =
+ MessageColumns.MAILBOX_KEY + " =? and " + MessageColumns.FLAG_READ + "= 0";
+
+ private static final String UUID_SELECTION = AccountColumns.COMPATIBILITY_UUID + " =?";
+
+ public static final String SECURITY_NONZERO_SELECTION =
+ Account.POLICY_KEY + " IS NOT NULL AND " + Account.POLICY_KEY + "!=0";
+
+ private static final String FIND_INBOX_SELECTION =
+ MailboxColumns.TYPE + " = " + Mailbox.TYPE_INBOX +
+ " AND " + MailboxColumns.ACCOUNT_KEY + " =?";
+
+ /**
+ * This projection is for searching for the default account
+ */
+ private static final String[] DEFAULT_ID_PROJECTION = new String[] {
+ RECORD_ID, IS_DEFAULT
+ };
+
+ /**
+ * no public constructor since this is a utility class
+ */
+ public Account() {
+ mBaseUri = CONTENT_URI;
+
+ // other defaults (policy)
+ mRingtoneUri = "content://settings/system/notification_sound";
+ mSyncInterval = -1;
+ mSyncLookback = -1;
+ mFlags = FLAGS_NOTIFY_NEW_MAIL;
+ mCompatibilityUuid = UUID.randomUUID().toString();
+ }
+
+ public static Account restoreAccountWithId(Context context, long id) {
+ return EmailContent.restoreContentWithId(context, Account.class,
+ Account.CONTENT_URI, Account.CONTENT_PROJECTION, id);
+ }
+
+ /**
+ * Returns {@code true} if the given account ID is a "normal" account. Normal accounts
+ * always have an ID greater than {@code 0} and not equal to any pseudo account IDs
+ * (such as {@link #ACCOUNT_ID_COMBINED_VIEW})
+ */
+ public static boolean isNormalAccount(long accountId) {
+ return (accountId > 0L) && (accountId != ACCOUNT_ID_COMBINED_VIEW);
+ }
+
+ /**
+ * Refresh an account that has already been loaded. This is slightly less expensive
+ * that generating a brand-new account object.
+ */
+ public void refresh(Context context) {
+ Cursor c = context.getContentResolver().query(getUri(), Account.CONTENT_PROJECTION,
+ null, null, null);
+ try {
+ c.moveToFirst();
+ restore(c);
+ } finally {
+ if (c != null) {
+ c.close();
+ }
+ }
+ }
+
+ @Override
+ public void restore(Cursor cursor) {
+ mId = cursor.getLong(CONTENT_ID_COLUMN);
+ mBaseUri = CONTENT_URI;
+ mDisplayName = cursor.getString(CONTENT_DISPLAY_NAME_COLUMN);
+ mEmailAddress = cursor.getString(CONTENT_EMAIL_ADDRESS_COLUMN);
+ mSyncKey = cursor.getString(CONTENT_SYNC_KEY_COLUMN);
+ mSyncLookback = cursor.getInt(CONTENT_SYNC_LOOKBACK_COLUMN);
+ mSyncInterval = cursor.getInt(CONTENT_SYNC_INTERVAL_COLUMN);
+ mHostAuthKeyRecv = cursor.getLong(CONTENT_HOST_AUTH_KEY_RECV_COLUMN);
+ mHostAuthKeySend = cursor.getLong(CONTENT_HOST_AUTH_KEY_SEND_COLUMN);
+ mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN);
+ mIsDefault = cursor.getInt(CONTENT_IS_DEFAULT_COLUMN) == 1;
+ mCompatibilityUuid = cursor.getString(CONTENT_COMPATIBILITY_UUID_COLUMN);
+ mSenderName = cursor.getString(CONTENT_SENDER_NAME_COLUMN);
+ mRingtoneUri = cursor.getString(CONTENT_RINGTONE_URI_COLUMN);
+ mProtocolVersion = cursor.getString(CONTENT_PROTOCOL_VERSION_COLUMN);
+ mNewMessageCount = cursor.getInt(CONTENT_NEW_MESSAGE_COUNT_COLUMN);
+ mSecuritySyncKey = cursor.getString(CONTENT_SECURITY_SYNC_KEY_COLUMN);
+ mSignature = cursor.getString(CONTENT_SIGNATURE_COLUMN);
+ mPolicyKey = cursor.getLong(CONTENT_POLICY_KEY);
+ }
+
+ private long getId(Uri u) {
+ return Long.parseLong(u.getPathSegments().get(1));
+ }
+
+ /**
+ * @return the user-visible name for the account
+ */
+ public String getDisplayName() {
+ return mDisplayName;
+ }
+
+ /**
+ * Set the description. Be sure to call save() to commit to database.
+ * @param description the new description
+ */
+ public void setDisplayName(String description) {
+ mDisplayName = description;
+ }
+
+ /**
+ * @return the email address for this account
+ */
+ public String getEmailAddress() {
+ return mEmailAddress;
+ }
+
+ /**
+ * Set the Email address for this account. Be sure to call save() to commit to database.
+ * @param emailAddress the new email address for this account
+ */
+ public void setEmailAddress(String emailAddress) {
+ mEmailAddress = emailAddress;
+ }
+
+ /**
+ * @return the sender's name for this account
+ */
+ public String getSenderName() {
+ return mSenderName;
+ }
+
+ /**
+ * Set the sender's name. Be sure to call save() to commit to database.
+ * @param name the new sender name
+ */
+ public void setSenderName(String name) {
+ mSenderName = name;
+ }
+
+ public String getSignature() {
+ return mSignature;
+ }
+
+ public void setSignature(String signature) {
+ mSignature = signature;
+ }
+
+ /**
+ * @return the minutes per check (for polling)
+ * TODO define sentinel values for "never", "push", etc. See Account.java
+ */
+ public int getSyncInterval() {
+ return mSyncInterval;
+ }
+
+ /**
+ * Set the minutes per check (for polling). Be sure to call save() to commit to database.
+ * TODO define sentinel values for "never", "push", etc. See Account.java
+ * @param minutes the number of minutes between polling checks
+ */
+ public void setSyncInterval(int minutes) {
+ mSyncInterval = minutes;
+ }
+
+ /**
+ * @return One of the {@code Account.SYNC_WINDOW_*} constants that represents the sync
+ * lookback window.
+ * TODO define sentinel values for "all", "1 month", etc. See Account.java
+ */
+ public int getSyncLookback() {
+ return mSyncLookback;
+ }
+
+ /**
+ * Set the sync lookback window. Be sure to call save() to commit to database.
+ * TODO define sentinel values for "all", "1 month", etc. See Account.java
+ * @param value One of the {@code Account.SYNC_WINDOW_*} constants
+ */
+ public void setSyncLookback(int value) {
+ mSyncLookback = value;
+ }
+
+ /**
+ * @return the flags for this account
+ * @see #FLAGS_NOTIFY_NEW_MAIL
+ * @see #FLAGS_VIBRATE_ALWAYS
+ * @see #FLAGS_VIBRATE_WHEN_SILENT
+ */
+ public int getFlags() {
+ return mFlags;
+ }
+
+ /**
+ * Set the flags for this account
+ * @see #FLAGS_NOTIFY_NEW_MAIL
+ * @see #FLAGS_VIBRATE_ALWAYS
+ * @see #FLAGS_VIBRATE_WHEN_SILENT
+ * @param newFlags the new value for the flags
+ */
+ public void setFlags(int newFlags) {
+ mFlags = newFlags;
+ }
+
+ /**
+ * @return the ringtone Uri for this account
+ */
+ public String getRingtone() {
+ return mRingtoneUri;
+ }
+
+ /**
+ * Set the ringtone Uri for this account
+ * @param newUri the new URI string for the ringtone for this account
+ */
+ public void setRingtone(String newUri) {
+ mRingtoneUri = newUri;
+ }
+
+ /**
+ * Set the "delete policy" as a simple 0,1,2 value set.
+ * @param newPolicy the new delete policy
+ */
+ public void setDeletePolicy(int newPolicy) {
+ mFlags &= ~FLAGS_DELETE_POLICY_MASK;
+ mFlags |= (newPolicy << FLAGS_DELETE_POLICY_SHIFT) & FLAGS_DELETE_POLICY_MASK;
+ }
+
+ /**
+ * Return the "delete policy" as a simple 0,1,2 value set.
+ * @return the current delete policy
+ */
+ public int getDeletePolicy() {
+ return (mFlags & FLAGS_DELETE_POLICY_MASK) >> FLAGS_DELETE_POLICY_SHIFT;
+ }
+
+ /**
+ * Return the Uuid associated with this account. This is primarily for compatibility
+ * with accounts set up by previous versions, because there are externals references
+ * to the Uuid (e.g. desktop shortcuts).
+ */
+ public String getUuid() {
+ return mCompatibilityUuid;
+ }
+
+ public HostAuth getOrCreateHostAuthSend(Context context) {
+ if (mHostAuthSend == null) {
+ if (mHostAuthKeySend != 0) {
+ mHostAuthSend = HostAuth.restoreHostAuthWithId(context, mHostAuthKeySend);
+ } else {
+ mHostAuthSend = new HostAuth();
+ }
+ }
+ return mHostAuthSend;
+ }
+
+ public HostAuth getOrCreateHostAuthRecv(Context context) {
+ if (mHostAuthRecv == null) {
+ if (mHostAuthKeyRecv != 0) {
+ mHostAuthRecv = HostAuth.restoreHostAuthWithId(context, mHostAuthKeyRecv);
+ } else {
+ mHostAuthRecv = new HostAuth();
+ }
+ }
+ return mHostAuthRecv;
+ }
+
+ /**
+ * For compatibility while converting to provider model, generate a "local store URI"
+ *
+ * @return a string in the form of a Uri, as used by the other parts of the email app
+ */
+ public String getLocalStoreUri(Context context) {
+ return "local://localhost/" + context.getDatabasePath(getUuid() + ".db");
+ }
+
+ /**
+ * @return true if the instance is of an EAS account.
+ *
+ * NOTE This method accesses the DB if {@link #mHostAuthRecv} hasn't been restored yet.
+ * Use caution when you use this on the main thread.
+ */
+ public boolean isEasAccount(Context context) {
+ return "eas".equals(getProtocol(context));
+ }
+
+ /**
+ * @return true if the account supports "move messages".
+ */
+ public static boolean supportsMoveMessages(Context context, long accountId) {
+ String protocol = getProtocol(context, accountId);
+ return "eas".equals(protocol) || "imap".equals(protocol);
+ }
+
+ /**
+ * Set the account to be the default account. If this is set to "true", when the account
+ * is saved, all other accounts will have the same value set to "false".
+ * @param newDefaultState the new default state - if true, others will be cleared.
+ */
+ public void setDefaultAccount(boolean newDefaultState) {
+ mIsDefault = newDefaultState;
+ }
+
+ /**
+ * Helper method for finding the default account.
+ */
+ static private long getDefaultAccountWhere(Context context, String where) {
+ return Utility.getFirstRowLong(context, CONTENT_URI,
+ DEFAULT_ID_PROJECTION,
+ where, null, null, 0, Long.valueOf(-1));
+ }
+
+ /**
+ * @return {@link Uri} to this {@link Account} in the
+ * {@code content://com.android.email.provider/account/UUID} format, which is safe to use
+ * for desktop shortcuts.
+ *
+ * <p>We don't want to store _id in shortcuts, because
+ * {@link com.android.email.provider.AccountBackupRestore} won't preserve it.
+ */
+ public Uri getShortcutSafeUri() {
+ return getShortcutSafeUriFromUuid(mCompatibilityUuid);
+ }
+
+ /**
+ * @return {@link Uri} to an {@link Account} with a {@code uuid}.
+ */
+ public static Uri getShortcutSafeUriFromUuid(String uuid) {
+ return CONTENT_URI.buildUpon().appendEncodedPath(uuid).build();
+ }
+
+ /**
+ * Parse {@link Uri} in the {@code content://com.android.email.provider/account/ID} format
+ * where ID = account id (used on Eclair, Android 2.0-2.1) or UUID, and return _id of
+ * the {@link Account} associated with it.
+ *
+ * @param context context to access DB
+ * @param uri URI of interest
+ * @return _id of the {@link Account} associated with ID, or -1 if none found.
+ */
+ public static long getAccountIdFromShortcutSafeUri(Context context, Uri uri) {
+ // Make sure the URI is in the correct format.
+ if (!"content".equals(uri.getScheme())
+ || !AUTHORITY.equals(uri.getAuthority())) {
+ return -1;
+ }
+
+ final List<String> ps = uri.getPathSegments();
+ if (ps.size() != 2 || !"account".equals(ps.get(0))) {
+ return -1;
+ }
+
+ // Now get the ID part.
+ final String id = ps.get(1);
+
+ // First, see if ID can be parsed as long. (Eclair-style)
+ // (UUIDs have '-' in them, so they are always non-parsable.)
+ try {
+ return Long.parseLong(id);
+ } catch (NumberFormatException ok) {
+ // OK, it's not a long. Continue...
+ }
+
+ // Now id is a UUId.
+ return getAccountIdFromUuid(context, id);
+ }
+
+ /**
+ * @return ID of the account with the given UUID.
+ */
+ public static long getAccountIdFromUuid(Context context, String uuid) {
+ return Utility.getFirstRowLong(context,
+ CONTENT_URI, ID_PROJECTION,
+ UUID_SELECTION, new String[] {uuid}, null, 0, -1L);
+ }
+
+ /**
+ * Return the id of the default account. If one hasn't been explicitly specified, return
+ * the first one in the database. For any account saved in the DB, this must be used
+ * to check for the default account - the mIsDefault field is set lazily and may be
+ * incorrect.
+ * @param context the caller's context
+ * @return the id of the default account, or -1 if there are no accounts
+ */
+ static public long getDefaultAccountId(Context context) {
+ long id = getDefaultAccountWhere(context, AccountColumns.IS_DEFAULT + "=1");
+ if (id == -1) {
+ id = getDefaultAccountWhere(context, null);
+ }
+ return id;
+ }
+
+ /**
+ * Given an account id, return the account's protocol
+ * @param context the caller's context
+ * @param accountId the id of the account to be examined
+ * @return the account's protocol (or null if the Account or HostAuth do not exist)
+ */
+ public static String getProtocol(Context context, long accountId) {
+ Account account = Account.restoreAccountWithId(context, accountId);
+ if (account != null) {
+ return account.getProtocol(context);
+ }
+ return null;
+ }
+
+ /**
+ * Return the account's protocol
+ * @param context the caller's context
+ * @return the account's protocol (or null if the HostAuth doesn't not exist)
+ */
+ public String getProtocol(Context context) {
+ HostAuth hostAuth = HostAuth.restoreHostAuthWithId(context, mHostAuthKeyRecv);
+ if (hostAuth != null) {
+ return hostAuth.mProtocol;
+ }
+ return null;
+ }
+
+ /**
+ * Return the account ID for a message with a given id
+ *
+ * @param context the caller's context
+ * @param messageId the id of the message
+ * @return the account ID, or -1 if the account doesn't exist
+ */
+ public static long getAccountIdForMessageId(Context context, long messageId) {
+ return Message.getKeyColumnLong(context, messageId, MessageColumns.ACCOUNT_KEY);
+ }
+
+ /**
+ * Return the account for a message with a given id
+ * @param context the caller's context
+ * @param messageId the id of the message
+ * @return the account, or null if the account doesn't exist
+ */
+ public static Account getAccountForMessageId(Context context, long messageId) {
+ long accountId = getAccountIdForMessageId(context, messageId);
+ if (accountId != -1) {
+ return Account.restoreAccountWithId(context, accountId);
+ }
+ return null;
+ }
+
+ /**
+ * @return true if an {@code accountId} is assigned to any existing account.
+ */
+ public static boolean isValidId(Context context, long accountId) {
+ return null != Utility.getFirstRowLong(context, CONTENT_URI, ID_PROJECTION,
+ ID_SELECTION, new String[] {Long.toString(accountId)}, null,
+ ID_PROJECTION_COLUMN);
+ }
+
+ /**
+ * Check a single account for security hold status.
+ */
+ public static boolean isSecurityHold(Context context, long accountId) {
+ return (Utility.getFirstRowLong(context,
+ ContentUris.withAppendedId(Account.CONTENT_URI, accountId),
+ ACCOUNT_FLAGS_PROJECTION, null, null, null, ACCOUNT_FLAGS_COLUMN_FLAGS, 0L)
+ & Account.FLAGS_SECURITY_HOLD) != 0;
+ }
+
+ /**
+ * @return id of the "inbox" mailbox, or -1 if not found.
+ */
+ public static long getInboxId(Context context, long accountId) {
+ return Utility.getFirstRowLong(context, Mailbox.CONTENT_URI, ID_PROJECTION,
+ FIND_INBOX_SELECTION, new String[] {Long.toString(accountId)}, null,
+ ID_PROJECTION_COLUMN, -1L);
+ }
+
+ /**
+ * Clear all account hold flags that are set.
+ *
+ * (This will trigger watchers, and in particular will cause EAS to try and resync the
+ * account(s).)
+ */
+ public static void clearSecurityHoldOnAllAccounts(Context context) {
+ ContentResolver resolver = context.getContentResolver();
+ Cursor c = resolver.query(Account.CONTENT_URI, ACCOUNT_FLAGS_PROJECTION,
+ SECURITY_NONZERO_SELECTION, null, null);
+ try {
+ while (c.moveToNext()) {
+ int flags = c.getInt(ACCOUNT_FLAGS_COLUMN_FLAGS);
+
+ if (0 != (flags & FLAGS_SECURITY_HOLD)) {
+ ContentValues cv = new ContentValues();
+ cv.put(AccountColumns.FLAGS, flags & ~FLAGS_SECURITY_HOLD);
+ long accountId = c.getLong(ACCOUNT_FLAGS_COLUMN_ID);
+ Uri uri = ContentUris.withAppendedId(Account.CONTENT_URI, accountId);
+ resolver.update(uri, cv, null, null);
+ }
+ }
+ } finally {
+ c.close();
+ }
+ }
+
+ /**
+ * Override update to enforce a single default account, and do it atomically
+ */
+ @Override
+ public int update(Context context, ContentValues cv) {
+ if (mPolicy != null && mPolicyKey <= 0) {
+ // If a policy is set and there's no policy, link it to the account
+ Policy.setAccountPolicy(context, this, mPolicy, null);
+ }
+ if (cv.containsKey(AccountColumns.IS_DEFAULT) &&
+ cv.getAsBoolean(AccountColumns.IS_DEFAULT)) {
+ ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
+ ContentValues cv1 = new ContentValues();
+ cv1.put(AccountColumns.IS_DEFAULT, false);
+ // Clear the default flag in all accounts
+ ops.add(ContentProviderOperation.newUpdate(CONTENT_URI).withValues(cv1).build());
+ // Update this account
+ ops.add(ContentProviderOperation
+ .newUpdate(ContentUris.withAppendedId(CONTENT_URI, mId))
+ .withValues(cv).build());
+ try {
+ context.getContentResolver().applyBatch(AUTHORITY, ops);
+ return 1;
+ } catch (RemoteException e) {
+ // There is nothing to be done here; fail by returning 0
+ } catch (OperationApplicationException e) {
+ // There is nothing to be done here; fail by returning 0
+ }
+ return 0;
+ }
+ return super.update(context, cv);
+ }
+
+ /*
+ * Override this so that we can store the HostAuth's first and link them to the Account
+ * (non-Javadoc)
+ * @see com.android.email.provider.EmailContent#save(android.content.Context)
+ */
+ @Override
+ public Uri save(Context context) {
+ if (isSaved()) {
+ throw new UnsupportedOperationException();
+ }
+ // This logic is in place so I can (a) short circuit the expensive stuff when
+ // possible, and (b) override (and throw) if anyone tries to call save() or update()
+ // directly for Account, which are unsupported.
+ if (mHostAuthRecv == null && mHostAuthSend == null && mIsDefault == false &&
+ mPolicy != null) {
+ return super.save(context);
+ }
+
+ int index = 0;
+ int recvIndex = -1;
+ int sendIndex = -1;
+ int policyIndex = -1;
+
+ // Create operations for saving the send and recv hostAuths
+ // Also, remember which operation in the array they represent
+ ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
+ if (mHostAuthRecv != null) {
+ recvIndex = index++;
+ ops.add(ContentProviderOperation.newInsert(mHostAuthRecv.mBaseUri)
+ .withValues(mHostAuthRecv.toContentValues())
+ .build());
+ }
+ if (mHostAuthSend != null) {
+ sendIndex = index++;
+ ops.add(ContentProviderOperation.newInsert(mHostAuthSend.mBaseUri)
+ .withValues(mHostAuthSend.toContentValues())
+ .build());
+ }
+ if (mPolicy != null) {
+ policyIndex = index++;
+ ops.add(ContentProviderOperation.newInsert(mPolicy.mBaseUri)
+ .withValues(mPolicy.toContentValues())
+ .build());
+ }
+
+ // Create operations for making this the only default account
+ // Note, these are always updates because they change existing accounts
+ if (mIsDefault) {
+ index++;
+ ContentValues cv1 = new ContentValues();
+ cv1.put(AccountColumns.IS_DEFAULT, 0);
+ ops.add(ContentProviderOperation.newUpdate(CONTENT_URI).withValues(cv1).build());
+ }
+
+ // Now do the Account
+ ContentValues cv = null;
+ if (recvIndex >= 0 || sendIndex >= 0) {
+ cv = new ContentValues();
+ if (recvIndex >= 0) {
+ cv.put(Account.HOST_AUTH_KEY_RECV, recvIndex);
+ }
+ if (sendIndex >= 0) {
+ cv.put(Account.HOST_AUTH_KEY_SEND, sendIndex);
+ }
+ if (policyIndex >= 0) {
+ cv.put(Account.POLICY_KEY, policyIndex);
+ }
+ }
+
+ ContentProviderOperation.Builder b = ContentProviderOperation.newInsert(mBaseUri);
+ b.withValues(toContentValues());
+ if (cv != null) {
+ b.withValueBackReferences(cv);
+ }
+ ops.add(b.build());
+
+ try {
+ ContentProviderResult[] results =
+ context.getContentResolver().applyBatch(AUTHORITY, ops);
+ // If saving, set the mId's of the various saved objects
+ if (recvIndex >= 0) {
+ long newId = getId(results[recvIndex].uri);
+ mHostAuthKeyRecv = newId;
+ mHostAuthRecv.mId = newId;
+ }
+ if (sendIndex >= 0) {
+ long newId = getId(results[sendIndex].uri);
+ mHostAuthKeySend = newId;
+ mHostAuthSend.mId = newId;
+ }
+ if (policyIndex >= 0) {
+ long newId = getId(results[policyIndex].uri);
+ mPolicyKey = newId;
+ mPolicy.mId = newId;
+ }
+ Uri u = results[index].uri;
+ mId = getId(u);
+ return u;
+ } catch (RemoteException e) {
+ // There is nothing to be done here; fail by returning null
+ } catch (OperationApplicationException e) {
+ // There is nothing to be done here; fail by returning null
+ }
+ return null;
+ }
+
+ @Override
+ public ContentValues toContentValues() {
+ ContentValues values = new ContentValues();
+ values.put(AccountColumns.DISPLAY_NAME, mDisplayName);
+ values.put(AccountColumns.EMAIL_ADDRESS, mEmailAddress);
+ values.put(AccountColumns.SYNC_KEY, mSyncKey);
+ values.put(AccountColumns.SYNC_LOOKBACK, mSyncLookback);
+ values.put(AccountColumns.SYNC_INTERVAL, mSyncInterval);
+ values.put(AccountColumns.HOST_AUTH_KEY_RECV, mHostAuthKeyRecv);
+ values.put(AccountColumns.HOST_AUTH_KEY_SEND, mHostAuthKeySend);
+ values.put(AccountColumns.FLAGS, mFlags);
+ values.put(AccountColumns.IS_DEFAULT, mIsDefault);
+ values.put(AccountColumns.COMPATIBILITY_UUID, mCompatibilityUuid);
+ values.put(AccountColumns.SENDER_NAME, mSenderName);
+ values.put(AccountColumns.RINGTONE_URI, mRingtoneUri);
+ values.put(AccountColumns.PROTOCOL_VERSION, mProtocolVersion);
+ values.put(AccountColumns.NEW_MESSAGE_COUNT, mNewMessageCount);
+ values.put(AccountColumns.SECURITY_SYNC_KEY, mSecuritySyncKey);
+ values.put(AccountColumns.SIGNATURE, mSignature);
+ values.put(AccountColumns.POLICY_KEY, mPolicyKey);
+ return values;
+ }
+
+ /**
+ * Supports Parcelable
+ */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /**
+ * Supports Parcelable
+ */
+ public static final Parcelable.Creator<Account> CREATOR
+ = new Parcelable.Creator<Account>() {
+ @Override
+ public Account createFromParcel(Parcel in) {
+ return new Account(in);
+ }
+
+ @Override
+ public Account[] newArray(int size) {
+ return new Account[size];
+ }
+ };
+
+ /**
+ * Supports Parcelable
+ */
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ // mBaseUri is not parceled
+ dest.writeLong(mId);
+ dest.writeString(mDisplayName);
+ dest.writeString(mEmailAddress);
+ dest.writeString(mSyncKey);
+ dest.writeInt(mSyncLookback);
+ dest.writeInt(mSyncInterval);
+ dest.writeLong(mHostAuthKeyRecv);
+ dest.writeLong(mHostAuthKeySend);
+ dest.writeInt(mFlags);
+ dest.writeByte(mIsDefault ? (byte)1 : (byte)0);
+ dest.writeString(mCompatibilityUuid);
+ dest.writeString(mSenderName);
+ dest.writeString(mRingtoneUri);
+ dest.writeString(mProtocolVersion);
+ dest.writeInt(mNewMessageCount);
+ dest.writeString(mSecuritySyncKey);
+ dest.writeString(mSignature);
+ dest.writeLong(mPolicyKey);
+
+ if (mHostAuthRecv != null) {
+ dest.writeByte((byte)1);
+ mHostAuthRecv.writeToParcel(dest, flags);
+ } else {
+ dest.writeByte((byte)0);
+ }
+
+ if (mHostAuthSend != null) {
+ dest.writeByte((byte)1);
+ mHostAuthSend.writeToParcel(dest, flags);
+ } else {
+ dest.writeByte((byte)0);
+ }
+ }
+
+ /**
+ * Supports Parcelable
+ */
+ public Account(Parcel in) {
+ mBaseUri = Account.CONTENT_URI;
+ mId = in.readLong();
+ mDisplayName = in.readString();
+ mEmailAddress = in.readString();
+ mSyncKey = in.readString();
+ mSyncLookback = in.readInt();
+ mSyncInterval = in.readInt();
+ mHostAuthKeyRecv = in.readLong();
+ mHostAuthKeySend = in.readLong();
+ mFlags = in.readInt();
+ mIsDefault = in.readByte() == 1;
+ mCompatibilityUuid = in.readString();
+ mSenderName = in.readString();
+ mRingtoneUri = in.readString();
+ mProtocolVersion = in.readString();
+ mNewMessageCount = in.readInt();
+ mSecuritySyncKey = in.readString();
+ mSignature = in.readString();
+ mPolicyKey = in.readLong();
+
+ mHostAuthRecv = null;
+ if (in.readByte() == 1) {
+ mHostAuthRecv = new HostAuth(in);
+ }
+
+ mHostAuthSend = null;
+ if (in.readByte() == 1) {
+ mHostAuthSend = new HostAuth(in);
+ }
+ }
+
+ /**
+ * For debugger support only - DO NOT use for code.
+ */
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder('[');
+ if (mHostAuthRecv != null && mHostAuthRecv.mProtocol != null) {
+ sb.append(mHostAuthRecv.mProtocol);
+ sb.append(':');
+ }
+ if (mDisplayName != null) sb.append(mDisplayName);
+ sb.append(':');
+ if (mEmailAddress != null) sb.append(mEmailAddress);
+ sb.append(':');
+ if (mSenderName != null) sb.append(mSenderName);
+ sb.append(']');
+ return sb.toString();
+ }
+
+}
\ No newline at end of file
diff --git a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java
index 77d8067..670ec1f 100644
--- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java
+++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java
@@ -16,9 +16,6 @@
package com.android.emailcommon.provider;
-import com.android.emailcommon.utility.TextUtilities;
-import com.android.emailcommon.utility.Utility;
-
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver;
@@ -33,10 +30,11 @@
import android.os.Parcelable;
import android.os.RemoteException;
+import com.android.emailcommon.utility.TextUtilities;
+import com.android.emailcommon.utility.Utility;
+
import java.io.File;
import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
/**
@@ -971,963 +969,6 @@
}
}
- public interface AccountColumns {
- public static final String ID = "_id";
- // The display name of the account (user-settable)
- public static final String DISPLAY_NAME = "displayName";
- // The email address corresponding to this account
- public static final String EMAIL_ADDRESS = "emailAddress";
- // A server-based sync key on an account-wide basis (EAS needs this)
- public static final String SYNC_KEY = "syncKey";
- // The default sync lookback period for this account
- public static final String SYNC_LOOKBACK = "syncLookback";
- // The default sync frequency for this account, in minutes
- public static final String SYNC_INTERVAL = "syncInterval";
- // A foreign key into the account manager, having host, login, password, port, and ssl flags
- public static final String HOST_AUTH_KEY_RECV = "hostAuthKeyRecv";
- // (optional) A foreign key into the account manager, having host, login, password, port,
- // and ssl flags
- public static final String HOST_AUTH_KEY_SEND = "hostAuthKeySend";
- // Flags
- public static final String FLAGS = "flags";
- // Default account
- public static final String IS_DEFAULT = "isDefault";
- // Old-Style UUID for compatibility with previous versions
- public static final String COMPATIBILITY_UUID = "compatibilityUuid";
- // User name (for outgoing messages)
- public static final String SENDER_NAME = "senderName";
- // Ringtone
- public static final String RINGTONE_URI = "ringtoneUri";
- // Protocol version (arbitrary string, used by EAS currently)
- public static final String PROTOCOL_VERSION = "protocolVersion";
- // The number of new messages (reported by the sync/download engines
- public static final String NEW_MESSAGE_COUNT = "newMessageCount";
- // Legacy flags defining security (provisioning) requirements of this account; this
- // information is now found in the Policy table; POLICY_KEY (below) is the foreign key
- @Deprecated
- public static final String SECURITY_FLAGS = "securityFlags";
- // Server-based sync key for the security policies currently enforced
- public static final String SECURITY_SYNC_KEY = "securitySyncKey";
- // Signature to use with this account
- public static final String SIGNATURE = "signature";
- // A foreign key into the Policy table
- public static final String POLICY_KEY = "policyKey";
- }
-
- public static final class Account extends EmailContent implements AccountColumns, Parcelable {
- public static final String TABLE_NAME = "Account";
- @SuppressWarnings("hiding")
- public static final Uri CONTENT_URI = Uri.parse(EmailContent.CONTENT_URI + "/account");
- public static final Uri ADD_TO_FIELD_URI =
- Uri.parse(EmailContent.CONTENT_URI + "/accountIdAddToField");
- public static final Uri RESET_NEW_MESSAGE_COUNT_URI =
- Uri.parse(EmailContent.CONTENT_URI + "/resetNewMessageCount");
- public static final Uri NOTIFIER_URI =
- Uri.parse(EmailContent.CONTENT_NOTIFIER_URI + "/account");
-
- // Define all pseudo account IDs here to avoid conflict with one another.
- /**
- * Pseudo account ID to represent a "combined account" that includes messages and mailboxes
- * from all defined accounts.
- *
- * <em>IMPORTANT</em>: This must never be stored to the database.
- */
- public static final long ACCOUNT_ID_COMBINED_VIEW = 0x1000000000000000L;
- /**
- * Pseudo account ID to represent "no account". This may be used any time the account ID
- * may not be known or when we want to specifically select "no" account.
- *
- * <em>IMPORTANT</em>: This must never be stored to the database.
- */
- public static final long NO_ACCOUNT = -1L;
-
- // Whether or not the user has asked for notifications of new mail in this account
- public final static int FLAGS_NOTIFY_NEW_MAIL = 1<<0;
- // Whether or not the user has asked for vibration notifications with all new mail
- public final static int FLAGS_VIBRATE_ALWAYS = 1<<1;
- // Bit mask for the account's deletion policy (see DELETE_POLICY_x below)
- public static final int FLAGS_DELETE_POLICY_MASK = 1<<2 | 1<<3;
- public static final int FLAGS_DELETE_POLICY_SHIFT = 2;
- // Whether the account is in the process of being created; any account reconciliation code
- // MUST ignore accounts with this bit set; in addition, ContentObservers for this data
- // SHOULD consider the state of this flag during operation
- public static final int FLAGS_INCOMPLETE = 1<<4;
- // Security hold is used when the device is not in compliance with security policies
- // required by the server; in this state, the user MUST be alerted to the need to update
- // security settings. Sync adapters SHOULD NOT attempt to sync when this flag is set.
- public static final int FLAGS_SECURITY_HOLD = 1<<5;
- // Whether or not the user has asked for vibration notifications when the ringer is silent
- public static final int FLAGS_VIBRATE_WHEN_SILENT = 1<<6;
- // Whether the account supports "smart forward" (i.e. the server appends the original
- // message along with any attachments to the outgoing message)
- public static final int FLAGS_SUPPORTS_SMART_FORWARD = 1<<7;
- // Whether the account should try to cache attachments in the background
- public static final int FLAGS_BACKGROUND_ATTACHMENTS = 1<<8;
- // Available to sync adapter
- public static final int FLAGS_SYNC_ADAPTER = 1<<9;
- // Sync disabled is a status commanded by the server; the sync adapter SHOULD NOT try to
- // sync mailboxes in this account automatically. A manual sync request to sync a mailbox
- // with sync disabled SHOULD try to sync and report any failure result via the UI.
- public static final int FLAGS_SYNC_DISABLED = 1<<10;
-
- // Deletion policy (see FLAGS_DELETE_POLICY_MASK, above)
- public static final int DELETE_POLICY_NEVER = 0;
- public static final int DELETE_POLICY_7DAYS = 1<<0; // not supported
- public static final int DELETE_POLICY_ON_DELETE = 1<<1;
-
- // Sentinel values for the mSyncInterval field of both Account records
- public static final int CHECK_INTERVAL_NEVER = -1;
- public static final int CHECK_INTERVAL_PUSH = -2;
-
- public String mDisplayName;
- public String mEmailAddress;
- public String mSyncKey;
- public int mSyncLookback;
- public int mSyncInterval;
- public long mHostAuthKeyRecv;
- public long mHostAuthKeySend;
- public int mFlags;
- public boolean mIsDefault; // note: callers should use getDefaultAccountId()
- public String mCompatibilityUuid;
- public String mSenderName;
- public String mRingtoneUri;
- public String mProtocolVersion;
- public int mNewMessageCount;
- public String mSecuritySyncKey;
- public String mSignature;
- public long mPolicyKey;
-
- // Convenience for creating/working with an account
- public transient HostAuth mHostAuthRecv;
- public transient HostAuth mHostAuthSend;
- public transient Policy mPolicy;
- // Might hold the corresponding AccountManager account structure
- public transient android.accounts.Account mAmAccount;
-
- public static final int CONTENT_ID_COLUMN = 0;
- public static final int CONTENT_DISPLAY_NAME_COLUMN = 1;
- public static final int CONTENT_EMAIL_ADDRESS_COLUMN = 2;
- public static final int CONTENT_SYNC_KEY_COLUMN = 3;
- public static final int CONTENT_SYNC_LOOKBACK_COLUMN = 4;
- public static final int CONTENT_SYNC_INTERVAL_COLUMN = 5;
- public static final int CONTENT_HOST_AUTH_KEY_RECV_COLUMN = 6;
- public static final int CONTENT_HOST_AUTH_KEY_SEND_COLUMN = 7;
- public static final int CONTENT_FLAGS_COLUMN = 8;
- public static final int CONTENT_IS_DEFAULT_COLUMN = 9;
- public static final int CONTENT_COMPATIBILITY_UUID_COLUMN = 10;
- public static final int CONTENT_SENDER_NAME_COLUMN = 11;
- public static final int CONTENT_RINGTONE_URI_COLUMN = 12;
- public static final int CONTENT_PROTOCOL_VERSION_COLUMN = 13;
- public static final int CONTENT_NEW_MESSAGE_COUNT_COLUMN = 14;
- public static final int CONTENT_SECURITY_SYNC_KEY_COLUMN = 15;
- public static final int CONTENT_SIGNATURE_COLUMN = 16;
- public static final int CONTENT_POLICY_KEY = 17;
-
- public static final String[] CONTENT_PROJECTION = new String[] {
- RECORD_ID, AccountColumns.DISPLAY_NAME,
- AccountColumns.EMAIL_ADDRESS, AccountColumns.SYNC_KEY, AccountColumns.SYNC_LOOKBACK,
- AccountColumns.SYNC_INTERVAL, AccountColumns.HOST_AUTH_KEY_RECV,
- AccountColumns.HOST_AUTH_KEY_SEND, AccountColumns.FLAGS, AccountColumns.IS_DEFAULT,
- AccountColumns.COMPATIBILITY_UUID, AccountColumns.SENDER_NAME,
- AccountColumns.RINGTONE_URI, AccountColumns.PROTOCOL_VERSION,
- AccountColumns.NEW_MESSAGE_COUNT, AccountColumns.SECURITY_SYNC_KEY,
- AccountColumns.SIGNATURE, AccountColumns.POLICY_KEY
- };
-
- public static final int CONTENT_MAILBOX_TYPE_COLUMN = 1;
-
- /**
- * This projection is for listing account id's only
- */
- public static final String[] ID_TYPE_PROJECTION = new String[] {
- RECORD_ID, MailboxColumns.TYPE
- };
-
- public static final int ACCOUNT_FLAGS_COLUMN_ID = 0;
- public static final int ACCOUNT_FLAGS_COLUMN_FLAGS = 1;
- public static final String[] ACCOUNT_FLAGS_PROJECTION = new String[] {
- AccountColumns.ID, AccountColumns.FLAGS};
-
- public static final String MAILBOX_SELECTION =
- MessageColumns.MAILBOX_KEY + " =?";
-
- public static final String UNREAD_COUNT_SELECTION =
- MessageColumns.MAILBOX_KEY + " =? and " + MessageColumns.FLAG_READ + "= 0";
-
- private static final String UUID_SELECTION = AccountColumns.COMPATIBILITY_UUID + " =?";
-
- public static final String SECURITY_NONZERO_SELECTION =
- Account.POLICY_KEY + " IS NOT NULL AND " + Account.POLICY_KEY + "!=0";
-
- private static final String FIND_INBOX_SELECTION =
- MailboxColumns.TYPE + " = " + Mailbox.TYPE_INBOX +
- " AND " + MailboxColumns.ACCOUNT_KEY + " =?";
-
- /**
- * This projection is for searching for the default account
- */
- private static final String[] DEFAULT_ID_PROJECTION = new String[] {
- RECORD_ID, IS_DEFAULT
- };
-
- /**
- * no public constructor since this is a utility class
- */
- public Account() {
- mBaseUri = CONTENT_URI;
-
- // other defaults (policy)
- mRingtoneUri = "content://settings/system/notification_sound";
- mSyncInterval = -1;
- mSyncLookback = -1;
- mFlags = FLAGS_NOTIFY_NEW_MAIL;
- mCompatibilityUuid = UUID.randomUUID().toString();
- }
-
- public static Account restoreAccountWithId(Context context, long id) {
- return EmailContent.restoreContentWithId(context, Account.class,
- Account.CONTENT_URI, Account.CONTENT_PROJECTION, id);
- }
-
- /**
- * Returns {@code true} if the given account ID is a "normal" account. Normal accounts
- * always have an ID greater than {@code 0} and not equal to any pseudo account IDs
- * (such as {@link #ACCOUNT_ID_COMBINED_VIEW})
- */
- public static boolean isNormalAccount(long accountId) {
- return (accountId > 0L) && (accountId != ACCOUNT_ID_COMBINED_VIEW);
- }
-
- /**
- * Refresh an account that has already been loaded. This is slightly less expensive
- * that generating a brand-new account object.
- */
- public void refresh(Context context) {
- Cursor c = context.getContentResolver().query(getUri(), Account.CONTENT_PROJECTION,
- null, null, null);
- try {
- c.moveToFirst();
- restore(c);
- } finally {
- if (c != null) {
- c.close();
- }
- }
- }
-
- @Override
- public void restore(Cursor cursor) {
- mId = cursor.getLong(CONTENT_ID_COLUMN);
- mBaseUri = CONTENT_URI;
- mDisplayName = cursor.getString(CONTENT_DISPLAY_NAME_COLUMN);
- mEmailAddress = cursor.getString(CONTENT_EMAIL_ADDRESS_COLUMN);
- mSyncKey = cursor.getString(CONTENT_SYNC_KEY_COLUMN);
- mSyncLookback = cursor.getInt(CONTENT_SYNC_LOOKBACK_COLUMN);
- mSyncInterval = cursor.getInt(CONTENT_SYNC_INTERVAL_COLUMN);
- mHostAuthKeyRecv = cursor.getLong(CONTENT_HOST_AUTH_KEY_RECV_COLUMN);
- mHostAuthKeySend = cursor.getLong(CONTENT_HOST_AUTH_KEY_SEND_COLUMN);
- mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN);
- mIsDefault = cursor.getInt(CONTENT_IS_DEFAULT_COLUMN) == 1;
- mCompatibilityUuid = cursor.getString(CONTENT_COMPATIBILITY_UUID_COLUMN);
- mSenderName = cursor.getString(CONTENT_SENDER_NAME_COLUMN);
- mRingtoneUri = cursor.getString(CONTENT_RINGTONE_URI_COLUMN);
- mProtocolVersion = cursor.getString(CONTENT_PROTOCOL_VERSION_COLUMN);
- mNewMessageCount = cursor.getInt(CONTENT_NEW_MESSAGE_COUNT_COLUMN);
- mSecuritySyncKey = cursor.getString(CONTENT_SECURITY_SYNC_KEY_COLUMN);
- mSignature = cursor.getString(CONTENT_SIGNATURE_COLUMN);
- mPolicyKey = cursor.getLong(CONTENT_POLICY_KEY);
- }
-
- private long getId(Uri u) {
- return Long.parseLong(u.getPathSegments().get(1));
- }
-
- /**
- * @return the user-visible name for the account
- */
- public String getDisplayName() {
- return mDisplayName;
- }
-
- /**
- * Set the description. Be sure to call save() to commit to database.
- * @param description the new description
- */
- public void setDisplayName(String description) {
- mDisplayName = description;
- }
-
- /**
- * @return the email address for this account
- */
- public String getEmailAddress() {
- return mEmailAddress;
- }
-
- /**
- * Set the Email address for this account. Be sure to call save() to commit to database.
- * @param emailAddress the new email address for this account
- */
- public void setEmailAddress(String emailAddress) {
- mEmailAddress = emailAddress;
- }
-
- /**
- * @return the sender's name for this account
- */
- public String getSenderName() {
- return mSenderName;
- }
-
- /**
- * Set the sender's name. Be sure to call save() to commit to database.
- * @param name the new sender name
- */
- public void setSenderName(String name) {
- mSenderName = name;
- }
-
- public String getSignature() {
- return mSignature;
- }
-
- public void setSignature(String signature) {
- mSignature = signature;
- }
-
- /**
- * @return the minutes per check (for polling)
- * TODO define sentinel values for "never", "push", etc. See Account.java
- */
- public int getSyncInterval() {
- return mSyncInterval;
- }
-
- /**
- * Set the minutes per check (for polling). Be sure to call save() to commit to database.
- * TODO define sentinel values for "never", "push", etc. See Account.java
- * @param minutes the number of minutes between polling checks
- */
- public void setSyncInterval(int minutes) {
- mSyncInterval = minutes;
- }
-
- /**
- * @return One of the {@code Account.SYNC_WINDOW_*} constants that represents the sync
- * lookback window.
- * TODO define sentinel values for "all", "1 month", etc. See Account.java
- */
- public int getSyncLookback() {
- return mSyncLookback;
- }
-
- /**
- * Set the sync lookback window. Be sure to call save() to commit to database.
- * TODO define sentinel values for "all", "1 month", etc. See Account.java
- * @param value One of the {@code Account.SYNC_WINDOW_*} constants
- */
- public void setSyncLookback(int value) {
- mSyncLookback = value;
- }
-
- /**
- * @return the flags for this account
- * @see #FLAGS_NOTIFY_NEW_MAIL
- * @see #FLAGS_VIBRATE_ALWAYS
- * @see #FLAGS_VIBRATE_WHEN_SILENT
- */
- public int getFlags() {
- return mFlags;
- }
-
- /**
- * Set the flags for this account
- * @see #FLAGS_NOTIFY_NEW_MAIL
- * @see #FLAGS_VIBRATE_ALWAYS
- * @see #FLAGS_VIBRATE_WHEN_SILENT
- * @param newFlags the new value for the flags
- */
- public void setFlags(int newFlags) {
- mFlags = newFlags;
- }
-
- /**
- * @return the ringtone Uri for this account
- */
- public String getRingtone() {
- return mRingtoneUri;
- }
-
- /**
- * Set the ringtone Uri for this account
- * @param newUri the new URI string for the ringtone for this account
- */
- public void setRingtone(String newUri) {
- mRingtoneUri = newUri;
- }
-
- /**
- * Set the "delete policy" as a simple 0,1,2 value set.
- * @param newPolicy the new delete policy
- */
- public void setDeletePolicy(int newPolicy) {
- mFlags &= ~FLAGS_DELETE_POLICY_MASK;
- mFlags |= (newPolicy << FLAGS_DELETE_POLICY_SHIFT) & FLAGS_DELETE_POLICY_MASK;
- }
-
- /**
- * Return the "delete policy" as a simple 0,1,2 value set.
- * @return the current delete policy
- */
- public int getDeletePolicy() {
- return (mFlags & FLAGS_DELETE_POLICY_MASK) >> FLAGS_DELETE_POLICY_SHIFT;
- }
-
- /**
- * Return the Uuid associated with this account. This is primarily for compatibility
- * with accounts set up by previous versions, because there are externals references
- * to the Uuid (e.g. desktop shortcuts).
- */
- public String getUuid() {
- return mCompatibilityUuid;
- }
-
- public HostAuth getOrCreateHostAuthSend(Context context) {
- if (mHostAuthSend == null) {
- if (mHostAuthKeySend != 0) {
- mHostAuthSend = HostAuth.restoreHostAuthWithId(context, mHostAuthKeySend);
- } else {
- mHostAuthSend = new HostAuth();
- }
- }
- return mHostAuthSend;
- }
-
- public HostAuth getOrCreateHostAuthRecv(Context context) {
- if (mHostAuthRecv == null) {
- if (mHostAuthKeyRecv != 0) {
- mHostAuthRecv = HostAuth.restoreHostAuthWithId(context, mHostAuthKeyRecv);
- } else {
- mHostAuthRecv = new HostAuth();
- }
- }
- return mHostAuthRecv;
- }
-
- /**
- * For compatibility while converting to provider model, generate a "local store URI"
- *
- * @return a string in the form of a Uri, as used by the other parts of the email app
- */
- public String getLocalStoreUri(Context context) {
- return "local://localhost/" + context.getDatabasePath(getUuid() + ".db");
- }
-
- /**
- * @return true if the instance is of an EAS account.
- *
- * NOTE This method accesses the DB if {@link #mHostAuthRecv} hasn't been restored yet.
- * Use caution when you use this on the main thread.
- */
- public boolean isEasAccount(Context context) {
- return "eas".equals(getProtocol(context));
- }
-
- /**
- * @return true if the account supports "move messages".
- */
- public static boolean supportsMoveMessages(Context context, long accountId) {
- String protocol = getProtocol(context, accountId);
- return "eas".equals(protocol) || "imap".equals(protocol);
- }
-
- /**
- * Set the account to be the default account. If this is set to "true", when the account
- * is saved, all other accounts will have the same value set to "false".
- * @param newDefaultState the new default state - if true, others will be cleared.
- */
- public void setDefaultAccount(boolean newDefaultState) {
- mIsDefault = newDefaultState;
- }
-
- /**
- * Helper method for finding the default account.
- */
- static private long getDefaultAccountWhere(Context context, String where) {
- return Utility.getFirstRowLong(context, CONTENT_URI,
- DEFAULT_ID_PROJECTION,
- where, null, null, 0, Long.valueOf(-1));
- }
-
- /**
- * @return {@link Uri} to this {@link Account} in the
- * {@code content://com.android.email.provider/account/UUID} format, which is safe to use
- * for desktop shortcuts.
- *
- * <p>We don't want to store _id in shortcuts, because
- * {@link com.android.email.provider.AccountBackupRestore} won't preserve it.
- */
- public Uri getShortcutSafeUri() {
- return getShortcutSafeUriFromUuid(mCompatibilityUuid);
- }
-
- /**
- * @return {@link Uri} to an {@link Account} with a {@code uuid}.
- */
- public static Uri getShortcutSafeUriFromUuid(String uuid) {
- return CONTENT_URI.buildUpon().appendEncodedPath(uuid).build();
- }
-
- /**
- * Parse {@link Uri} in the {@code content://com.android.email.provider/account/ID} format
- * where ID = account id (used on Eclair, Android 2.0-2.1) or UUID, and return _id of
- * the {@link Account} associated with it.
- *
- * @param context context to access DB
- * @param uri URI of interest
- * @return _id of the {@link Account} associated with ID, or -1 if none found.
- */
- public static long getAccountIdFromShortcutSafeUri(Context context, Uri uri) {
- // Make sure the URI is in the correct format.
- if (!"content".equals(uri.getScheme())
- || !AUTHORITY.equals(uri.getAuthority())) {
- return -1;
- }
-
- final List<String> ps = uri.getPathSegments();
- if (ps.size() != 2 || !"account".equals(ps.get(0))) {
- return -1;
- }
-
- // Now get the ID part.
- final String id = ps.get(1);
-
- // First, see if ID can be parsed as long. (Eclair-style)
- // (UUIDs have '-' in them, so they are always non-parsable.)
- try {
- return Long.parseLong(id);
- } catch (NumberFormatException ok) {
- // OK, it's not a long. Continue...
- }
-
- // Now id is a UUId.
- return getAccountIdFromUuid(context, id);
- }
-
- /**
- * @return ID of the account with the given UUID.
- */
- public static long getAccountIdFromUuid(Context context, String uuid) {
- return Utility.getFirstRowLong(context,
- CONTENT_URI, ID_PROJECTION,
- UUID_SELECTION, new String[] {uuid}, null, 0, -1L);
- }
-
- /**
- * Return the id of the default account. If one hasn't been explicitly specified, return
- * the first one in the database. For any account saved in the DB, this must be used
- * to check for the default account - the mIsDefault field is set lazily and may be
- * incorrect.
- * @param context the caller's context
- * @return the id of the default account, or -1 if there are no accounts
- */
- static public long getDefaultAccountId(Context context) {
- long id = getDefaultAccountWhere(context, AccountColumns.IS_DEFAULT + "=1");
- if (id == -1) {
- id = getDefaultAccountWhere(context, null);
- }
- return id;
- }
-
- /**
- * Given an account id, return the account's protocol
- * @param context the caller's context
- * @param accountId the id of the account to be examined
- * @return the account's protocol (or null if the Account or HostAuth do not exist)
- */
- public static String getProtocol(Context context, long accountId) {
- Account account = Account.restoreAccountWithId(context, accountId);
- if (account != null) {
- return account.getProtocol(context);
- }
- return null;
- }
-
- /**
- * Return the account's protocol
- * @param context the caller's context
- * @return the account's protocol (or null if the HostAuth doesn't not exist)
- */
- public String getProtocol(Context context) {
- HostAuth hostAuth = HostAuth.restoreHostAuthWithId(context, mHostAuthKeyRecv);
- if (hostAuth != null) {
- return hostAuth.mProtocol;
- }
- return null;
- }
-
- /**
- * Return the account ID for a message with a given id
- *
- * @param context the caller's context
- * @param messageId the id of the message
- * @return the account ID, or -1 if the account doesn't exist
- */
- public static long getAccountIdForMessageId(Context context, long messageId) {
- return Message.getKeyColumnLong(context, messageId, MessageColumns.ACCOUNT_KEY);
- }
-
- /**
- * Return the account for a message with a given id
- * @param context the caller's context
- * @param messageId the id of the message
- * @return the account, or null if the account doesn't exist
- */
- public static Account getAccountForMessageId(Context context, long messageId) {
- long accountId = getAccountIdForMessageId(context, messageId);
- if (accountId != -1) {
- return Account.restoreAccountWithId(context, accountId);
- }
- return null;
- }
-
- /**
- * @return true if an {@code accountId} is assigned to any existing account.
- */
- public static boolean isValidId(Context context, long accountId) {
- return null != Utility.getFirstRowLong(context, CONTENT_URI, ID_PROJECTION,
- ID_SELECTION, new String[] {Long.toString(accountId)}, null,
- ID_PROJECTION_COLUMN);
- }
-
- /**
- * Check a single account for security hold status.
- */
- public static boolean isSecurityHold(Context context, long accountId) {
- return (Utility.getFirstRowLong(context,
- ContentUris.withAppendedId(Account.CONTENT_URI, accountId),
- ACCOUNT_FLAGS_PROJECTION, null, null, null, ACCOUNT_FLAGS_COLUMN_FLAGS, 0L)
- & Account.FLAGS_SECURITY_HOLD) != 0;
- }
-
- /**
- * @return id of the "inbox" mailbox, or -1 if not found.
- */
- public static long getInboxId(Context context, long accountId) {
- return Utility.getFirstRowLong(context, Mailbox.CONTENT_URI, ID_PROJECTION,
- FIND_INBOX_SELECTION, new String[] {Long.toString(accountId)}, null,
- ID_PROJECTION_COLUMN, -1L);
- }
-
- /**
- * Clear all account hold flags that are set.
- *
- * (This will trigger watchers, and in particular will cause EAS to try and resync the
- * account(s).)
- */
- public static void clearSecurityHoldOnAllAccounts(Context context) {
- ContentResolver resolver = context.getContentResolver();
- Cursor c = resolver.query(Account.CONTENT_URI, ACCOUNT_FLAGS_PROJECTION,
- SECURITY_NONZERO_SELECTION, null, null);
- try {
- while (c.moveToNext()) {
- int flags = c.getInt(ACCOUNT_FLAGS_COLUMN_FLAGS);
-
- if (0 != (flags & FLAGS_SECURITY_HOLD)) {
- ContentValues cv = new ContentValues();
- cv.put(AccountColumns.FLAGS, flags & ~FLAGS_SECURITY_HOLD);
- long accountId = c.getLong(ACCOUNT_FLAGS_COLUMN_ID);
- Uri uri = ContentUris.withAppendedId(Account.CONTENT_URI, accountId);
- resolver.update(uri, cv, null, null);
- }
- }
- } finally {
- c.close();
- }
- }
-
- /**
- * Override update to enforce a single default account, and do it atomically
- */
- @Override
- public int update(Context context, ContentValues cv) {
- if (mPolicy != null && mPolicyKey <= 0) {
- // If a policy is set and there's no policy, link it to the account
- Policy.setAccountPolicy(context, this, mPolicy, null);
- }
- if (cv.containsKey(AccountColumns.IS_DEFAULT) &&
- cv.getAsBoolean(AccountColumns.IS_DEFAULT)) {
- ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
- ContentValues cv1 = new ContentValues();
- cv1.put(AccountColumns.IS_DEFAULT, false);
- // Clear the default flag in all accounts
- ops.add(ContentProviderOperation.newUpdate(CONTENT_URI).withValues(cv1).build());
- // Update this account
- ops.add(ContentProviderOperation
- .newUpdate(ContentUris.withAppendedId(CONTENT_URI, mId))
- .withValues(cv).build());
- try {
- context.getContentResolver().applyBatch(AUTHORITY, ops);
- return 1;
- } catch (RemoteException e) {
- // There is nothing to be done here; fail by returning 0
- } catch (OperationApplicationException e) {
- // There is nothing to be done here; fail by returning 0
- }
- return 0;
- }
- return super.update(context, cv);
- }
-
- /*
- * Override this so that we can store the HostAuth's first and link them to the Account
- * (non-Javadoc)
- * @see com.android.email.provider.EmailContent#save(android.content.Context)
- */
- @Override
- public Uri save(Context context) {
- if (isSaved()) {
- throw new UnsupportedOperationException();
- }
- // This logic is in place so I can (a) short circuit the expensive stuff when
- // possible, and (b) override (and throw) if anyone tries to call save() or update()
- // directly for Account, which are unsupported.
- if (mHostAuthRecv == null && mHostAuthSend == null && mIsDefault == false &&
- mPolicy != null) {
- return super.save(context);
- }
-
- int index = 0;
- int recvIndex = -1;
- int sendIndex = -1;
- int policyIndex = -1;
-
- // Create operations for saving the send and recv hostAuths
- // Also, remember which operation in the array they represent
- ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
- if (mHostAuthRecv != null) {
- recvIndex = index++;
- ops.add(ContentProviderOperation.newInsert(mHostAuthRecv.mBaseUri)
- .withValues(mHostAuthRecv.toContentValues())
- .build());
- }
- if (mHostAuthSend != null) {
- sendIndex = index++;
- ops.add(ContentProviderOperation.newInsert(mHostAuthSend.mBaseUri)
- .withValues(mHostAuthSend.toContentValues())
- .build());
- }
- if (mPolicy != null) {
- policyIndex = index++;
- ops.add(ContentProviderOperation.newInsert(mPolicy.mBaseUri)
- .withValues(mPolicy.toContentValues())
- .build());
- }
-
- // Create operations for making this the only default account
- // Note, these are always updates because they change existing accounts
- if (mIsDefault) {
- index++;
- ContentValues cv1 = new ContentValues();
- cv1.put(AccountColumns.IS_DEFAULT, 0);
- ops.add(ContentProviderOperation.newUpdate(CONTENT_URI).withValues(cv1).build());
- }
-
- // Now do the Account
- ContentValues cv = null;
- if (recvIndex >= 0 || sendIndex >= 0) {
- cv = new ContentValues();
- if (recvIndex >= 0) {
- cv.put(Account.HOST_AUTH_KEY_RECV, recvIndex);
- }
- if (sendIndex >= 0) {
- cv.put(Account.HOST_AUTH_KEY_SEND, sendIndex);
- }
- if (policyIndex >= 0) {
- cv.put(Account.POLICY_KEY, policyIndex);
- }
- }
-
- ContentProviderOperation.Builder b = ContentProviderOperation.newInsert(mBaseUri);
- b.withValues(toContentValues());
- if (cv != null) {
- b.withValueBackReferences(cv);
- }
- ops.add(b.build());
-
- try {
- ContentProviderResult[] results =
- context.getContentResolver().applyBatch(AUTHORITY, ops);
- // If saving, set the mId's of the various saved objects
- if (recvIndex >= 0) {
- long newId = getId(results[recvIndex].uri);
- mHostAuthKeyRecv = newId;
- mHostAuthRecv.mId = newId;
- }
- if (sendIndex >= 0) {
- long newId = getId(results[sendIndex].uri);
- mHostAuthKeySend = newId;
- mHostAuthSend.mId = newId;
- }
- if (policyIndex >= 0) {
- long newId = getId(results[policyIndex].uri);
- mPolicyKey = newId;
- mPolicy.mId = newId;
- }
- Uri u = results[index].uri;
- mId = getId(u);
- return u;
- } catch (RemoteException e) {
- // There is nothing to be done here; fail by returning null
- } catch (OperationApplicationException e) {
- // There is nothing to be done here; fail by returning null
- }
- return null;
- }
-
- @Override
- public ContentValues toContentValues() {
- ContentValues values = new ContentValues();
- values.put(AccountColumns.DISPLAY_NAME, mDisplayName);
- values.put(AccountColumns.EMAIL_ADDRESS, mEmailAddress);
- values.put(AccountColumns.SYNC_KEY, mSyncKey);
- values.put(AccountColumns.SYNC_LOOKBACK, mSyncLookback);
- values.put(AccountColumns.SYNC_INTERVAL, mSyncInterval);
- values.put(AccountColumns.HOST_AUTH_KEY_RECV, mHostAuthKeyRecv);
- values.put(AccountColumns.HOST_AUTH_KEY_SEND, mHostAuthKeySend);
- values.put(AccountColumns.FLAGS, mFlags);
- values.put(AccountColumns.IS_DEFAULT, mIsDefault);
- values.put(AccountColumns.COMPATIBILITY_UUID, mCompatibilityUuid);
- values.put(AccountColumns.SENDER_NAME, mSenderName);
- values.put(AccountColumns.RINGTONE_URI, mRingtoneUri);
- values.put(AccountColumns.PROTOCOL_VERSION, mProtocolVersion);
- values.put(AccountColumns.NEW_MESSAGE_COUNT, mNewMessageCount);
- values.put(AccountColumns.SECURITY_SYNC_KEY, mSecuritySyncKey);
- values.put(AccountColumns.SIGNATURE, mSignature);
- values.put(AccountColumns.POLICY_KEY, mPolicyKey);
- return values;
- }
-
- /**
- * Supports Parcelable
- */
- @Override
- public int describeContents() {
- return 0;
- }
-
- /**
- * Supports Parcelable
- */
- public static final Parcelable.Creator<EmailContent.Account> CREATOR
- = new Parcelable.Creator<EmailContent.Account>() {
- @Override
- public EmailContent.Account createFromParcel(Parcel in) {
- return new EmailContent.Account(in);
- }
-
- @Override
- public EmailContent.Account[] newArray(int size) {
- return new EmailContent.Account[size];
- }
- };
-
- /**
- * Supports Parcelable
- */
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- // mBaseUri is not parceled
- dest.writeLong(mId);
- dest.writeString(mDisplayName);
- dest.writeString(mEmailAddress);
- dest.writeString(mSyncKey);
- dest.writeInt(mSyncLookback);
- dest.writeInt(mSyncInterval);
- dest.writeLong(mHostAuthKeyRecv);
- dest.writeLong(mHostAuthKeySend);
- dest.writeInt(mFlags);
- dest.writeByte(mIsDefault ? (byte)1 : (byte)0);
- dest.writeString(mCompatibilityUuid);
- dest.writeString(mSenderName);
- dest.writeString(mRingtoneUri);
- dest.writeString(mProtocolVersion);
- dest.writeInt(mNewMessageCount);
- dest.writeString(mSecuritySyncKey);
- dest.writeString(mSignature);
- dest.writeLong(mPolicyKey);
-
- if (mHostAuthRecv != null) {
- dest.writeByte((byte)1);
- mHostAuthRecv.writeToParcel(dest, flags);
- } else {
- dest.writeByte((byte)0);
- }
-
- if (mHostAuthSend != null) {
- dest.writeByte((byte)1);
- mHostAuthSend.writeToParcel(dest, flags);
- } else {
- dest.writeByte((byte)0);
- }
- }
-
- /**
- * Supports Parcelable
- */
- public Account(Parcel in) {
- mBaseUri = EmailContent.Account.CONTENT_URI;
- mId = in.readLong();
- mDisplayName = in.readString();
- mEmailAddress = in.readString();
- mSyncKey = in.readString();
- mSyncLookback = in.readInt();
- mSyncInterval = in.readInt();
- mHostAuthKeyRecv = in.readLong();
- mHostAuthKeySend = in.readLong();
- mFlags = in.readInt();
- mIsDefault = in.readByte() == 1;
- mCompatibilityUuid = in.readString();
- mSenderName = in.readString();
- mRingtoneUri = in.readString();
- mProtocolVersion = in.readString();
- mNewMessageCount = in.readInt();
- mSecuritySyncKey = in.readString();
- mSignature = in.readString();
- mPolicyKey = in.readLong();
-
- mHostAuthRecv = null;
- if (in.readByte() == 1) {
- mHostAuthRecv = new HostAuth(in);
- }
-
- mHostAuthSend = null;
- if (in.readByte() == 1) {
- mHostAuthSend = new HostAuth(in);
- }
- }
-
- /**
- * For debugger support only - DO NOT use for code.
- */
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder('[');
- if (mHostAuthRecv != null && mHostAuthRecv.mProtocol != null) {
- sb.append(mHostAuthRecv.mProtocol);
- sb.append(':');
- }
- if (mDisplayName != null) sb.append(mDisplayName);
- sb.append(':');
- if (mEmailAddress != null) sb.append(mEmailAddress);
- sb.append(':');
- if (mSenderName != null) sb.append(mSenderName);
- sb.append(']');
- return sb.toString();
- }
-
- }
-
public interface AttachmentColumns {
public static final String ID = "_id";
// The display name of the attachment
@@ -2215,6 +1256,49 @@
}
}
+ public interface AccountColumns {
+ public static final String ID = "_id";
+ // The display name of the account (user-settable)
+ public static final String DISPLAY_NAME = "displayName";
+ // The email address corresponding to this account
+ public static final String EMAIL_ADDRESS = "emailAddress";
+ // A server-based sync key on an account-wide basis (EAS needs this)
+ public static final String SYNC_KEY = "syncKey";
+ // The default sync lookback period for this account
+ public static final String SYNC_LOOKBACK = "syncLookback";
+ // The default sync frequency for this account, in minutes
+ public static final String SYNC_INTERVAL = "syncInterval";
+ // A foreign key into the account manager, having host, login, password, port, and ssl flags
+ public static final String HOST_AUTH_KEY_RECV = "hostAuthKeyRecv";
+ // (optional) A foreign key into the account manager, having host, login, password, port,
+ // and ssl flags
+ public static final String HOST_AUTH_KEY_SEND = "hostAuthKeySend";
+ // Flags
+ public static final String FLAGS = "flags";
+ // Default account
+ public static final String IS_DEFAULT = "isDefault";
+ // Old-Style UUID for compatibility with previous versions
+ public static final String COMPATIBILITY_UUID = "compatibilityUuid";
+ // User name (for outgoing messages)
+ public static final String SENDER_NAME = "senderName";
+ // Ringtone
+ public static final String RINGTONE_URI = "ringtoneUri";
+ // Protocol version (arbitrary string, used by EAS currently)
+ public static final String PROTOCOL_VERSION = "protocolVersion";
+ // The number of new messages (reported by the sync/download engines
+ public static final String NEW_MESSAGE_COUNT = "newMessageCount";
+ // Legacy flags defining security (provisioning) requirements of this account; this
+ // information is now found in the Policy table; POLICY_KEY (below) is the foreign key
+ @Deprecated
+ public static final String SECURITY_FLAGS = "securityFlags";
+ // Server-based sync key for the security policies currently enforced
+ public static final String SECURITY_SYNC_KEY = "securitySyncKey";
+ // Signature to use with this account
+ public static final String SIGNATURE = "signature";
+ // A foreign key into the Policy table
+ public static final String POLICY_KEY = "policyKey";
+ }
+
public interface MailboxColumns {
public static final String ID = "_id";
// The display name of this mailbox [INDEX]
diff --git a/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java b/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java
index 53d7a24..860e185 100644
--- a/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java
+++ b/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java
@@ -16,7 +16,7 @@
package com.android.emailcommon.service;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Policy;
import android.content.Context;
diff --git a/emailcommon/src/com/android/emailcommon/utility/AccountReconciler.java b/emailcommon/src/com/android/emailcommon/utility/AccountReconciler.java
index 3b158f0..dd38658 100644
--- a/emailcommon/src/com/android/emailcommon/utility/AccountReconciler.java
+++ b/emailcommon/src/com/android/emailcommon/utility/AccountReconciler.java
@@ -17,7 +17,7 @@
package com.android.emailcommon.utility;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.google.common.annotations.VisibleForTesting;
import android.accounts.AccountManager;
diff --git a/emailcommon/src/com/android/emailcommon/utility/Utility.java b/emailcommon/src/com/android/emailcommon/utility/Utility.java
index f941cf0..b492927 100644
--- a/emailcommon/src/com/android/emailcommon/utility/Utility.java
+++ b/emailcommon/src/com/android/emailcommon/utility/Utility.java
@@ -17,8 +17,8 @@
package com.android.emailcommon.utility;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.AttachmentColumns;
@@ -806,11 +806,11 @@
@Override
protected final Long[] doInBackground(Void... params) {
ArrayList<Long> ids = new ArrayList<Long>();
- Cursor c = mContext.getContentResolver().query(EmailContent.Account.CONTENT_URI,
- EmailContent.Account.ID_PROJECTION, null, null, null);
+ Cursor c = mContext.getContentResolver().query(Account.CONTENT_URI,
+ Account.ID_PROJECTION, null, null, null);
try {
while (c.moveToNext()) {
- ids.add(c.getLong(EmailContent.Account.ID_PROJECTION_COLUMN));
+ ids.add(c.getLong(Account.ID_PROJECTION_COLUMN));
}
} finally {
c.close();
diff --git a/src/com/android/email/Controller.java b/src/com/android/email/Controller.java
index b2dd9be..98b6f33 100644
--- a/src/com/android/email/Controller.java
+++ b/src/com/android/email/Controller.java
@@ -39,8 +39,8 @@
import com.android.emailcommon.mail.AuthenticationFailedException;
import com.android.emailcommon.mail.Folder.MessageRetrievalListener;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Body;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
@@ -405,7 +405,7 @@
public void run() {
// TODO shouldn't be passing fully-build accounts & mailboxes into APIs
Account account =
- EmailContent.Account.restoreAccountWithId(mProviderContext, accountId);
+ Account.restoreAccountWithId(mProviderContext, accountId);
Mailbox mailbox =
Mailbox.restoreMailboxWithId(mProviderContext, mailboxId);
if (account == null || mailbox == null) {
@@ -536,7 +536,7 @@
Mailbox box = new Mailbox();
box.mAccountKey = accountId;
box.mType = mailboxType;
- box.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER;
+ box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
box.mFlagVisible = true;
box.mServerId = box.mDisplayName = getMailboxServerName(mailboxType);
// All system mailboxes are off the top-level & can hold mail
@@ -582,8 +582,8 @@
private void sendPendingMessagesSmtp(long accountId) {
// for IMAP & POP only, (attempt to) send the message now
- final EmailContent.Account account =
- EmailContent.Account.restoreAccountWithId(mProviderContext, accountId);
+ final Account account =
+ Account.restoreAccountWithId(mProviderContext, accountId);
if (account == null) {
return;
}
@@ -993,7 +993,7 @@
/**
* Simple helper to determine if legacy MessagingController should be used
*/
- public boolean isMessagingController(EmailContent.Account account) {
+ public boolean isMessagingController(Account account) {
if (account == null) return false;
return isMessagingController(account.mId);
}
@@ -1051,7 +1051,7 @@
}
Uri uri = ContentUris.withAppendedId(
- EmailContent.Account.CONTENT_URI, accountId);
+ Account.CONTENT_URI, accountId);
context.getContentResolver().delete(uri, null, null);
backupAccounts(context);
diff --git a/src/com/android/email/Email.java b/src/com/android/email/Email.java
index d7cd4fd..c896f9e 100644
--- a/src/com/android/email/Email.java
+++ b/src/com/android/email/Email.java
@@ -24,7 +24,7 @@
import com.android.email.widget.WidgetConfiguration;
import com.android.emailcommon.Logging;
import com.android.emailcommon.TempDirectory;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.service.EmailServiceProxy;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
@@ -113,8 +113,8 @@
Cursor c = null;
try {
c = context.getContentResolver().query(
- EmailContent.Account.CONTENT_URI,
- EmailContent.Account.ID_PROJECTION,
+ Account.CONTENT_URI,
+ Account.ID_PROJECTION,
null, null, null);
boolean enable = c.getCount() > 0;
setServicesEnabled(context, enable);
diff --git a/src/com/android/email/EmailAddressAdapter.java b/src/com/android/email/EmailAddressAdapter.java
index 3da0beb..cd41bec 100644
--- a/src/com/android/email/EmailAddressAdapter.java
+++ b/src/com/android/email/EmailAddressAdapter.java
@@ -17,7 +17,7 @@
package com.android.email;
import com.android.common.contacts.BaseEmailAddressAdapter;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
import android.text.TextUtils;
diff --git a/src/com/android/email/MessagingController.java b/src/com/android/email/MessagingController.java
index d48d13e..51f65f4 100644
--- a/src/com/android/email/MessagingController.java
+++ b/src/com/android/email/MessagingController.java
@@ -34,8 +34,8 @@
import com.android.emailcommon.mail.Message;
import com.android.emailcommon.mail.MessagingException;
import com.android.emailcommon.mail.Part;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.AttachmentColumns;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
@@ -301,7 +301,7 @@
* @param folder
* @param listener
*/
- public void synchronizeMailbox(final EmailContent.Account account,
+ public void synchronizeMailbox(final Account account,
final Mailbox folder, MessagingListener listener) {
/*
* We don't ever sync the Outbox.
@@ -324,7 +324,7 @@
* @param account
* @param folder
*/
- private void synchronizeMailboxSynchronous(final EmailContent.Account account,
+ private void synchronizeMailboxSynchronous(final Account account,
final Mailbox folder) {
mListeners.synchronizeMailboxStarted(account.mId, folder.mId);
if ((folder.mFlags & Mailbox.FLAG_HOLDS_MAIL) == 0) {
@@ -408,7 +408,7 @@
* @throws MessagingException
*/
private SyncResults synchronizeMailboxGeneric(
- final EmailContent.Account account, final Mailbox folder)
+ final Account account, final Mailbox folder)
throws MessagingException {
/*
@@ -761,7 +761,7 @@
* @param loadStatus when complete, the message will be marked with this status (e.g.
* EmailContent.Message.LOADED)
*/
- public void copyOneMessageToProvider(Message message, EmailContent.Account account,
+ public void copyOneMessageToProvider(Message message, Account account,
Mailbox folder, int loadStatus) {
EmailContent.Message localMessage = null;
Cursor c = null;
@@ -854,8 +854,8 @@
put("processPendingActions", null, new Runnable() {
public void run() {
try {
- EmailContent.Account account =
- EmailContent.Account.restoreAccountWithId(mContext, accountId);
+ Account account =
+ Account.restoreAccountWithId(mContext, accountId);
if (account == null) {
return;
}
@@ -889,7 +889,7 @@
* @param account the account to scan for pending actions
* @throws MessagingException
*/
- private void processPendingActionsSynchronous(EmailContent.Account account)
+ private void processPendingActionsSynchronous(Account account)
throws MessagingException {
ContentResolver resolver = mContext.getContentResolver();
String[] accountIdArgs = new String[] { Long.toString(account.mId) };
@@ -912,7 +912,7 @@
* @param resolver
* @param accountIdArgs
*/
- private void processPendingDeletesSynchronous(EmailContent.Account account,
+ private void processPendingDeletesSynchronous(Account account,
ContentResolver resolver, String[] accountIdArgs) {
Cursor deletes = resolver.query(EmailContent.Message.DELETED_CONTENT_URI,
EmailContent.Message.CONTENT_PROJECTION,
@@ -986,7 +986,7 @@
* @param resolver
* @param accountIdArgs
*/
- private void processPendingUploadsSynchronous(EmailContent.Account account,
+ private void processPendingUploadsSynchronous(Account account,
ContentResolver resolver, String[] accountIdArgs) {
// Find the Sent folder (since that's all we're uploading for now
Cursor mailboxes = resolver.query(Mailbox.CONTENT_URI, Mailbox.ID_PROJECTION,
@@ -1088,7 +1088,7 @@
* @param resolver
* @param accountIdArgs
*/
- private void processPendingUpdatesSynchronous(EmailContent.Account account,
+ private void processPendingUpdatesSynchronous(Account account,
ContentResolver resolver, String[] accountIdArgs) {
Cursor updates = resolver.query(EmailContent.Message.UPDATED_CONTENT_URI,
EmailContent.Message.CONTENT_PROJECTION,
@@ -1183,7 +1183,7 @@
* @param messageId
*/
private void processUploadMessage(ContentResolver resolver, Store remoteStore,
- EmailContent.Account account, Mailbox mailbox, long messageId)
+ Account account, Mailbox mailbox, long messageId)
throws MessagingException {
EmailContent.Message newMessage =
EmailContent.Message.restoreMessageWithId(mContext, messageId);
@@ -1322,7 +1322,7 @@
* @param newMessage The message that was moved to the mailbox
*/
private void processPendingMoveToTrash(Store remoteStore,
- EmailContent.Account account, Mailbox newMailbox, EmailContent.Message oldMessage,
+ Account account, Mailbox newMailbox, EmailContent.Message oldMessage,
final EmailContent.Message newMessage) throws MessagingException {
// 0. No remote move if the message is local-only
@@ -1441,7 +1441,7 @@
* @param oldMessage The message that was deleted from the trash
*/
private void processPendingDeleteFromTrash(Store remoteStore,
- EmailContent.Account account, Mailbox oldMailbox, EmailContent.Message oldMessage)
+ Account account, Mailbox oldMailbox, EmailContent.Message oldMessage)
throws MessagingException {
// 1. We only support delete-from-trash here
@@ -1485,7 +1485,7 @@
* @param message The message we're appending
* @return true if successfully uploaded
*/
- private boolean processPendingAppend(Store remoteStore, EmailContent.Account account,
+ private boolean processPendingAppend(Store remoteStore, Account account,
Mailbox newMailbox, EmailContent.Message message)
throws MessagingException {
@@ -1633,8 +1633,8 @@
// 2. Open the remote folder.
// TODO all of these could be narrower projections
// TODO combine with common code in loadAttachment
- EmailContent.Account account =
- EmailContent.Account.restoreAccountWithId(mContext, message.mAccountKey);
+ Account account =
+ Account.restoreAccountWithId(mContext, message.mAccountKey);
Mailbox mailbox =
Mailbox.restoreMailboxWithId(mContext, message.mMailboxKey);
if (account == null || mailbox == null) {
@@ -1716,8 +1716,8 @@
// 2. Open the remote folder.
// TODO all of these could be narrower projections
- EmailContent.Account account =
- EmailContent.Account.restoreAccountWithId(mContext, accountId);
+ Account account =
+ Account.restoreAccountWithId(mContext, accountId);
Mailbox mailbox =
Mailbox.restoreMailboxWithId(mContext, mailboxId);
EmailContent.Message message =
@@ -1793,7 +1793,7 @@
* @param account
* @param listener
*/
- public void sendPendingMessages(final EmailContent.Account account, final long sentFolderId,
+ public void sendPendingMessages(final Account account, final long sentFolderId,
MessagingListener listener) {
put("sendPendingMessages", listener, new Runnable() {
public void run() {
@@ -1806,7 +1806,7 @@
* Attempt to send all messages sitting in the given account's outbox. Optionally,
* if the server requires it, the message will be moved to the given sent folder.
*/
- public void sendPendingMessagesSynchronous(final EmailContent.Account account,
+ public void sendPendingMessagesSynchronous(final Account account,
long sentFolderId) {
NotificationController nc = NotificationController.getInstance(mContext);
// 1. Loop through all messages in the account's outbox
@@ -1919,8 +1919,8 @@
// here if we somehow don't have a sent folder, but this should never happen
// because the call to sendMessage() would have built one previously.
long inboxId = -1;
- EmailContent.Account account =
- EmailContent.Account.restoreAccountWithId(mContext, accountId);
+ Account account =
+ Account.restoreAccountWithId(mContext, accountId);
if (account != null) {
long sentboxId = Mailbox.findMailboxOfType(mContext, accountId,
Mailbox.TYPE_SENT);
diff --git a/src/com/android/email/NotificationController.java b/src/com/android/email/NotificationController.java
index f7c0094..b947e6f 100644
--- a/src/com/android/email/NotificationController.java
+++ b/src/com/android/email/NotificationController.java
@@ -22,8 +22,8 @@
import com.android.email.activity.setup.AccountSettings;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.Address;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.EmailContent.Message;
diff --git a/src/com/android/email/SecurityPolicy.java b/src/com/android/email/SecurityPolicy.java
index f8c4826..d53c2e0 100644
--- a/src/com/android/email/SecurityPolicy.java
+++ b/src/com/android/email/SecurityPolicy.java
@@ -18,8 +18,8 @@
import com.android.email.service.EmailBroadcastProcessorService;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.PolicyColumns;
import com.android.emailcommon.provider.Policy;
@@ -517,7 +517,7 @@
* @param accountId the account for which sync cannot proceed
*/
public void policiesRequired(long accountId) {
- Account account = EmailContent.Account.restoreAccountWithId(mContext, accountId);
+ Account account = Account.restoreAccountWithId(mContext, accountId);
// In case the account has been deleted, just return
if (account == null) return;
if (Email.DEBUG) {
diff --git a/src/com/android/email/activity/AccountSelectorAdapter.java b/src/com/android/email/activity/AccountSelectorAdapter.java
index 4607678..6d41f60 100644
--- a/src/com/android/email/activity/AccountSelectorAdapter.java
+++ b/src/com/android/email/activity/AccountSelectorAdapter.java
@@ -21,8 +21,7 @@
import com.android.email.R;
import com.android.email.data.ClosingMatrixCursor;
import com.android.email.data.ThrottlingCursorLoader;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
@@ -80,7 +79,7 @@
/** Sort order. Show the default account first. */
private static final String ORDER_BY =
- EmailContent.Account.IS_DEFAULT + " desc, " + EmailContent.Account.RECORD_ID;
+ Account.IS_DEFAULT + " desc, " + Account.RECORD_ID;
private final LayoutInflater mInflater;
@SuppressWarnings("hiding")
@@ -274,7 +273,7 @@
private final long mAccountId;
public AccountsLoader(Context context, long accountId) {
// Super class loads a regular account cursor, but we replace it in loadInBackground().
- super(context, EmailContent.Account.CONTENT_URI, ACCOUNT_PROJECTION, null, null,
+ super(context, Account.CONTENT_URI, ACCOUNT_PROJECTION, null, null,
ORDER_BY);
mContext = context;
mAccountId = accountId;
diff --git a/src/com/android/email/activity/ActionBarController.java b/src/com/android/email/activity/ActionBarController.java
index 13e4efc..978c549 100644
--- a/src/com/android/email/activity/ActionBarController.java
+++ b/src/com/android/email/activity/ActionBarController.java
@@ -18,7 +18,7 @@
import com.android.email.R;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import android.app.ActionBar;
diff --git a/src/com/android/email/activity/ActivityHelper.java b/src/com/android/email/activity/ActivityHelper.java
index 9784366..cbd1d5b 100644
--- a/src/com/android/email/activity/ActivityHelper.java
+++ b/src/com/android/email/activity/ActivityHelper.java
@@ -19,8 +19,8 @@
import com.android.email.Controller;
import com.android.email.Email;
import com.android.email.R;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/EmailActivity.java b/src/com/android/email/activity/EmailActivity.java
index 00c9c33..fb5d760 100644
--- a/src/com/android/email/activity/EmailActivity.java
+++ b/src/com/android/email/activity/EmailActivity.java
@@ -23,7 +23,7 @@
import com.android.email.R;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
diff --git a/src/com/android/email/activity/IntentUtilities.java b/src/com/android/email/activity/IntentUtilities.java
index 95a1934..f45f145 100644
--- a/src/com/android/email/activity/IntentUtilities.java
+++ b/src/com/android/email/activity/IntentUtilities.java
@@ -16,7 +16,6 @@
package com.android.email.activity;
-import com.android.emailcommon.provider.EmailContent.Account;
import android.app.Activity;
import android.content.Context;
diff --git a/src/com/android/email/activity/MailboxFinder.java b/src/com/android/email/activity/MailboxFinder.java
index 07d41a3..e3c3283 100644
--- a/src/com/android/email/activity/MailboxFinder.java
+++ b/src/com/android/email/activity/MailboxFinder.java
@@ -21,7 +21,7 @@
import com.android.email.Email;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/MailboxFragmentAdapter.java b/src/com/android/email/activity/MailboxFragmentAdapter.java
index 9d8f437..e5b7e6b 100644
--- a/src/com/android/email/activity/MailboxFragmentAdapter.java
+++ b/src/com/android/email/activity/MailboxFragmentAdapter.java
@@ -25,8 +25,8 @@
import com.android.email.data.ClosingMatrixCursor;
import com.android.email.data.ThrottlingCursorLoader;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.EmailContent.Message;
diff --git a/src/com/android/email/activity/MailboxListFragment.java b/src/com/android/email/activity/MailboxListFragment.java
index d419263..5d3c794 100644
--- a/src/com/android/email/activity/MailboxListFragment.java
+++ b/src/com/android/email/activity/MailboxListFragment.java
@@ -22,7 +22,7 @@
import com.android.email.RefreshManager;
import com.android.email.provider.EmailProvider;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/MailboxListItem.java b/src/com/android/email/activity/MailboxListItem.java
index d0c52ac..e343960 100644
--- a/src/com/android/email/activity/MailboxListItem.java
+++ b/src/com/android/email/activity/MailboxListItem.java
@@ -17,7 +17,7 @@
package com.android.email.activity;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import android.content.Context;
diff --git a/src/com/android/email/activity/MailboxMoveToAdapter.java b/src/com/android/email/activity/MailboxMoveToAdapter.java
index 2c95729..2a44793 100644
--- a/src/com/android/email/activity/MailboxMoveToAdapter.java
+++ b/src/com/android/email/activity/MailboxMoveToAdapter.java
@@ -21,7 +21,7 @@
import com.android.email.data.ThrottlingCursorLoader;
import com.android.email.mail.Store;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/MessageCompose.java b/src/com/android/email/activity/MessageCompose.java
index 8212060..9f2add5 100644
--- a/src/com/android/email/activity/MessageCompose.java
+++ b/src/com/android/email/activity/MessageCompose.java
@@ -25,7 +25,7 @@
import com.android.emailcommon.Logging;
import com.android.emailcommon.internet.MimeUtility;
import com.android.emailcommon.mail.Address;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Body;
import com.android.emailcommon.provider.EmailContent.BodyColumns;
diff --git a/src/com/android/email/activity/MessageFileView.java b/src/com/android/email/activity/MessageFileView.java
index 0105477..dc90ba5 100644
--- a/src/com/android/email/activity/MessageFileView.java
+++ b/src/com/android/email/activity/MessageFileView.java
@@ -18,7 +18,7 @@
import com.android.email.R;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
import com.google.common.annotations.VisibleForTesting;
diff --git a/src/com/android/email/activity/MessageList.java b/src/com/android/email/activity/MessageList.java
index c219555..17bbc05 100644
--- a/src/com/android/email/activity/MessageList.java
+++ b/src/com/android/email/activity/MessageList.java
@@ -17,7 +17,7 @@
package com.android.email.activity;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
import com.google.common.annotations.VisibleForTesting;
diff --git a/src/com/android/email/activity/MessageListFragment.java b/src/com/android/email/activity/MessageListFragment.java
index 2960554..d3c489c 100644
--- a/src/com/android/email/activity/MessageListFragment.java
+++ b/src/com/android/email/activity/MessageListFragment.java
@@ -23,7 +23,7 @@
import com.android.email.RefreshManager;
import com.android.email.provider.EmailProvider;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
diff --git a/src/com/android/email/activity/MessageViewFragment.java b/src/com/android/email/activity/MessageViewFragment.java
index 261d6e5..73d03b2 100644
--- a/src/com/android/email/activity/MessageViewFragment.java
+++ b/src/com/android/email/activity/MessageViewFragment.java
@@ -20,7 +20,7 @@
import com.android.email.R;
import com.android.emailcommon.mail.MeetingInfo;
import com.android.emailcommon.mail.PackedString;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.service.EmailServiceConstants;
diff --git a/src/com/android/email/activity/MessagesAdapter.java b/src/com/android/email/activity/MessagesAdapter.java
index 7595fe7..2299d4e 100644
--- a/src/com/android/email/activity/MessagesAdapter.java
+++ b/src/com/android/email/activity/MessagesAdapter.java
@@ -20,8 +20,8 @@
import com.android.email.ResourceHelper;
import com.android.email.data.ThrottlingCursorLoader;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.EmailContent.MessageColumns;
import com.android.emailcommon.provider.Mailbox;
diff --git a/src/com/android/email/activity/MoveMessageToDialog.java b/src/com/android/email/activity/MoveMessageToDialog.java
index 1bfaeee..207896a 100644
--- a/src/com/android/email/activity/MoveMessageToDialog.java
+++ b/src/com/android/email/activity/MoveMessageToDialog.java
@@ -19,7 +19,7 @@
import com.android.email.Email;
import com.android.email.R;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/ShortcutPicker.java b/src/com/android/email/activity/ShortcutPicker.java
index d0d0047..10d26a1 100644
--- a/src/com/android/email/activity/ShortcutPicker.java
+++ b/src/com/android/email/activity/ShortcutPicker.java
@@ -20,7 +20,7 @@
import com.android.email.activity.ShortcutPickerFragment.AccountShortcutPickerFragment;
import com.android.email.activity.ShortcutPickerFragment.PickerCallback;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import android.app.Activity;
diff --git a/src/com/android/email/activity/ShortcutPickerFragment.java b/src/com/android/email/activity/ShortcutPickerFragment.java
index ad7a4bf..91267a3 100644
--- a/src/com/android/email/activity/ShortcutPickerFragment.java
+++ b/src/com/android/email/activity/ShortcutPickerFragment.java
@@ -17,7 +17,7 @@
package com.android.email.activity;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.HostAuth;
diff --git a/src/com/android/email/activity/UIControllerBase.java b/src/com/android/email/activity/UIControllerBase.java
index 5f55bd6..af6a0b6 100644
--- a/src/com/android/email/activity/UIControllerBase.java
+++ b/src/com/android/email/activity/UIControllerBase.java
@@ -21,7 +21,7 @@
import com.android.email.RefreshManager;
import com.android.email.activity.setup.AccountSettings;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
diff --git a/src/com/android/email/activity/UIControllerOnePane.java b/src/com/android/email/activity/UIControllerOnePane.java
index 8d481aa..a51ca74 100644
--- a/src/com/android/email/activity/UIControllerOnePane.java
+++ b/src/com/android/email/activity/UIControllerOnePane.java
@@ -21,7 +21,7 @@
import com.android.email.activity.MailboxFinder.Callback;
import com.android.email.activity.setup.AccountSecurity;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/UIControllerTwoPane.java b/src/com/android/email/activity/UIControllerTwoPane.java
index c825cc8..15ecf86 100644
--- a/src/com/android/email/activity/UIControllerTwoPane.java
+++ b/src/com/android/email/activity/UIControllerTwoPane.java
@@ -24,7 +24,7 @@
import com.android.email.activity.MailboxFinder.Callback;
import com.android.email.activity.setup.AccountSecurity;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
diff --git a/src/com/android/email/activity/Welcome.java b/src/com/android/email/activity/Welcome.java
index 4eff8fb..78cfe91 100644
--- a/src/com/android/email/activity/Welcome.java
+++ b/src/com/android/email/activity/Welcome.java
@@ -22,8 +22,8 @@
import com.android.email.activity.setup.AccountSetupBasics;
import com.android.email.provider.AccountBackupRestore;
import com.android.email.service.MailService;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.android.emailcommon.utility.Utility;
import com.google.common.annotations.VisibleForTesting;
@@ -236,7 +236,7 @@
}
} else {
// Use the default (without showing the toast)
- accountId = EmailContent.Account.getDefaultAccountId(context);
+ accountId = Account.getDefaultAccountId(context);
}
if (accountId != Account.NO_ACCOUNT) {
// Okay, the given account is valid.
@@ -244,7 +244,7 @@
} else {
// No, it's invalid. Show the warning toast and use the default.
Utility.showToast(context, R.string.toast_account_not_found);
- return EmailContent.Account.getDefaultAccountId(context);
+ return Account.getDefaultAccountId(context);
}
}
@@ -254,7 +254,7 @@
MailService.reconcilePopImapAccountsSync(mFromActivity);
final int numAccount =
- EmailContent.count(mFromActivity, EmailContent.Account.CONTENT_URI);
+ EmailContent.count(mFromActivity, Account.CONTENT_URI);
if (numAccount == 0) {
AccountSetupBasics.actionNewAccount(mFromActivity);
} else {
diff --git a/src/com/android/email/activity/setup/AccountCheckSettingsFragment.java b/src/com/android/email/activity/setup/AccountCheckSettingsFragment.java
index 900e428..c92edfb 100644
--- a/src/com/android/email/activity/setup/AccountCheckSettingsFragment.java
+++ b/src/com/android/email/activity/setup/AccountCheckSettingsFragment.java
@@ -21,7 +21,7 @@
import com.android.email.mail.Store;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Policy;
import com.android.emailcommon.service.EmailServiceProxy;
diff --git a/src/com/android/email/activity/setup/AccountSecurity.java b/src/com/android/email/activity/setup/AccountSecurity.java
index db3a08d..0738bc6 100644
--- a/src/com/android/email/activity/setup/AccountSecurity.java
+++ b/src/com/android/email/activity/setup/AccountSecurity.java
@@ -20,7 +20,7 @@
import com.android.email.R;
import com.android.email.SecurityPolicy;
import com.android.email.activity.ActivityHelper;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/setup/AccountServerBaseFragment.java b/src/com/android/email/activity/setup/AccountServerBaseFragment.java
index efe4c59..3da71cf 100644
--- a/src/com/android/email/activity/setup/AccountServerBaseFragment.java
+++ b/src/com/android/email/activity/setup/AccountServerBaseFragment.java
@@ -18,8 +18,7 @@
import com.android.email.R;
import com.android.email.activity.UiUtilities;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
@@ -282,7 +281,7 @@
@Override
protected Account doInBackground(Void... params) {
- EmailContent.Account account = Utility.findExistingAccount(mContext, mAccountId,
+ Account account = Utility.findExistingAccount(mContext, mAccountId,
mCheckHost, mCheckLogin);
return account;
}
diff --git a/src/com/android/email/activity/setup/AccountSettings.java b/src/com/android/email/activity/setup/AccountSettings.java
index cad994f..92b3395 100644
--- a/src/com/android/email/activity/setup/AccountSettings.java
+++ b/src/com/android/email/activity/setup/AccountSettings.java
@@ -23,8 +23,7 @@
import com.android.email.mail.Sender;
import com.android.email.mail.Store;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.utility.Utility;
@@ -434,8 +433,8 @@
long deletingAccountId = params[0];
Cursor c = getContentResolver().query(
- EmailContent.Account.CONTENT_URI,
- EmailContent.Account.CONTENT_PROJECTION, null, null, null);
+ Account.CONTENT_URI,
+ Account.CONTENT_PROJECTION, null, null, null);
try {
int index = 0;
int headerCount = c.getCount();
diff --git a/src/com/android/email/activity/setup/AccountSettingsFragment.java b/src/com/android/email/activity/setup/AccountSettingsFragment.java
index 4913d05..55b798e 100644
--- a/src/com/android/email/activity/setup/AccountSettingsFragment.java
+++ b/src/com/android/email/activity/setup/AccountSettingsFragment.java
@@ -48,8 +48,8 @@
import com.android.emailcommon.CalendarProviderStub;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/setup/AccountSettingsUtils.java b/src/com/android/email/activity/setup/AccountSettingsUtils.java
index 1744d4e..45e912f 100644
--- a/src/com/android/email/activity/setup/AccountSettingsUtils.java
+++ b/src/com/android/email/activity/setup/AccountSettingsUtils.java
@@ -20,7 +20,7 @@
import com.android.email.VendorPolicyLoader;
import com.android.email.provider.AccountBackupRestore;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import android.content.ContentValues;
@@ -47,7 +47,7 @@
* @param context the context of the caller
* @param account the account whose settings will be committed
*/
- public static void commitSettings(Context context, EmailContent.Account account) {
+ public static void commitSettings(Context context, Account account) {
if (!account.isSaved()) {
account.save(context);
} else {
@@ -62,7 +62,7 @@
* Returns a set of content values to commit account changes (not including the foreign keys
* for the two host auth's and policy) to the database. Does not actually commit anything.
*/
- public static ContentValues getAccountContentValues(EmailContent.Account account) {
+ public static ContentValues getAccountContentValues(Account account) {
ContentValues cv = new ContentValues();
cv.put(AccountColumns.IS_DEFAULT, account.mIsDefault);
cv.put(AccountColumns.DISPLAY_NAME, account.getDisplayName());
diff --git a/src/com/android/email/activity/setup/AccountSetupAccountType.java b/src/com/android/email/activity/setup/AccountSetupAccountType.java
index a53a72f..0c18266 100644
--- a/src/com/android/email/activity/setup/AccountSetupAccountType.java
+++ b/src/com/android/email/activity/setup/AccountSetupAccountType.java
@@ -28,7 +28,7 @@
import com.android.email.VendorPolicyLoader;
import com.android.email.activity.ActivityHelper;
import com.android.email.activity.UiUtilities;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
/**
diff --git a/src/com/android/email/activity/setup/AccountSetupBasics.java b/src/com/android/email/activity/setup/AccountSetupBasics.java
index 73f4a8e..5454144 100644
--- a/src/com/android/email/activity/setup/AccountSetupBasics.java
+++ b/src/com/android/email/activity/setup/AccountSetupBasics.java
@@ -25,8 +25,8 @@
import com.android.email.activity.setup.AccountSettingsUtils.Provider;
import com.android.email.mail.Store;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
@@ -468,7 +468,7 @@
@Override
protected Account doInBackground(Void... params) {
- EmailContent.Account account = Utility.findExistingAccount(mContext, -1,
+ Account account = Utility.findExistingAccount(mContext, -1,
mCheckHost, mCheckLogin);
return account;
}
@@ -605,7 +605,7 @@
if (Store.STORE_SCHEME_IMAP.equals(protocol)) {
// Delete policy must be set explicitly, because IMAP does not provide a UI selection
// for it. This logic needs to be followed in the auto setup flow as well.
- account.setDeletePolicy(EmailContent.Account.DELETE_POLICY_ON_DELETE);
+ account.setDeletePolicy(Account.DELETE_POLICY_ON_DELETE);
}
if (Store.STORE_SCHEME_EAS.equals(protocol)) {
@@ -649,7 +649,7 @@
@Override
protected Integer doInBackground(Void... params) {
- return EmailContent.count(AccountSetupBasics.this, EmailContent.Account.CONTENT_URI);
+ return EmailContent.count(AccountSetupBasics.this, Account.CONTENT_URI);
}
@Override
diff --git a/src/com/android/email/activity/setup/AccountSetupExchange.java b/src/com/android/email/activity/setup/AccountSetupExchange.java
index 12d7b6a..828aeb0 100644
--- a/src/com/android/email/activity/setup/AccountSetupExchange.java
+++ b/src/com/android/email/activity/setup/AccountSetupExchange.java
@@ -19,7 +19,7 @@
import com.android.email.R;
import com.android.email.activity.ActivityHelper;
import com.android.email.activity.UiUtilities;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.app.Activity;
diff --git a/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java b/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
index ed1565b..27fe600 100644
--- a/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupExchangeFragment.java
@@ -24,8 +24,7 @@
import com.android.email.provider.AccountBackupRestore;
import com.android.emailcommon.Device;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
@@ -368,7 +367,7 @@
*/
@Override
public void onNext() {
- EmailContent.Account account = SetupData.getAccount();
+ Account account = SetupData.getAccount();
String userName = mUsernameView.getText().toString().trim();
if (userName.startsWith("\\")) {
diff --git a/src/com/android/email/activity/setup/AccountSetupIncoming.java b/src/com/android/email/activity/setup/AccountSetupIncoming.java
index 080cbdc..ba5a256 100644
--- a/src/com/android/email/activity/setup/AccountSetupIncoming.java
+++ b/src/com/android/email/activity/setup/AccountSetupIncoming.java
@@ -19,7 +19,7 @@
import com.android.email.R;
import com.android.email.activity.ActivityHelper;
import com.android.email.activity.UiUtilities;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.app.Activity;
import android.app.FragmentTransaction;
diff --git a/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java b/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
index a47382b..16e68a6 100644
--- a/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupIncomingFragment.java
@@ -38,7 +38,7 @@
import com.android.email.mail.Store;
import com.android.email.provider.AccountBackupRestore;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
diff --git a/src/com/android/email/activity/setup/AccountSetupNames.java b/src/com/android/email/activity/setup/AccountSetupNames.java
index 9964e01..0c69231 100644
--- a/src/com/android/email/activity/setup/AccountSetupNames.java
+++ b/src/com/android/email/activity/setup/AccountSetupNames.java
@@ -21,7 +21,7 @@
import com.android.email.activity.UiUtilities;
import com.android.email.activity.Welcome;
import com.android.email.provider.AccountBackupRestore;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import android.app.Activity;
diff --git a/src/com/android/email/activity/setup/AccountSetupOptions.java b/src/com/android/email/activity/setup/AccountSetupOptions.java
index 41e0f51..ad110d5 100644
--- a/src/com/android/email/activity/setup/AccountSetupOptions.java
+++ b/src/com/android/email/activity/setup/AccountSetupOptions.java
@@ -42,8 +42,7 @@
import com.android.email.activity.UiUtilities;
import com.android.email.service.MailService;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.service.SyncWindow;
import com.android.emailcommon.utility.Utility;
@@ -137,7 +136,7 @@
mDefaultView.setChecked(true);
}
mNotifyView.setChecked(
- (account.getFlags() & EmailContent.Account.FLAGS_NOTIFY_NEW_MAIL) != 0);
+ (account.getFlags() & Account.FLAGS_NOTIFY_NEW_MAIL) != 0);
SpinnerOption.setSpinnerOptionValue(mCheckFrequencyView, account.getSyncInterval());
// Setup any additional items to support EAS & EAS flow mode
diff --git a/src/com/android/email/activity/setup/AccountSetupOutgoing.java b/src/com/android/email/activity/setup/AccountSetupOutgoing.java
index e542c18..3c5f8bf 100644
--- a/src/com/android/email/activity/setup/AccountSetupOutgoing.java
+++ b/src/com/android/email/activity/setup/AccountSetupOutgoing.java
@@ -19,7 +19,7 @@
import com.android.email.R;
import com.android.email.activity.ActivityHelper;
import com.android.email.activity.UiUtilities;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.app.Activity;
import android.app.FragmentTransaction;
diff --git a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
index 649df41..0908f50 100644
--- a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
+++ b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java
@@ -39,8 +39,7 @@
import com.android.email.activity.UiUtilities;
import com.android.email.provider.AccountBackupRestore;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
@@ -347,7 +346,7 @@
*/
@Override
public void onNext() {
- EmailContent.Account account = SetupData.getAccount();
+ Account account = SetupData.getAccount();
HostAuth sendAuth = account.getOrCreateHostAuthSend(mContext);
String userName = mUsernameView.getText().toString().trim();
diff --git a/src/com/android/email/activity/setup/SetupData.java b/src/com/android/email/activity/setup/SetupData.java
index 685d046..4606884 100644
--- a/src/com/android/email/activity/setup/SetupData.java
+++ b/src/com/android/email/activity/setup/SetupData.java
@@ -16,7 +16,7 @@
package com.android.email.activity.setup;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Policy;
import android.accounts.AccountAuthenticatorResponse;
diff --git a/src/com/android/email/mail/Sender.java b/src/com/android/email/mail/Sender.java
index 8d712c8..bd68d66 100644
--- a/src/com/android/email/mail/Sender.java
+++ b/src/com/android/email/mail/Sender.java
@@ -19,7 +19,7 @@
import com.android.email.R;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/src/com/android/email/mail/Store.java b/src/com/android/email/mail/Store.java
index 01d1c55..8a8ea59 100644
--- a/src/com/android/email/mail/Store.java
+++ b/src/com/android/email/mail/Store.java
@@ -26,8 +26,8 @@
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.Folder;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
import com.google.common.annotations.VisibleForTesting;
diff --git a/src/com/android/email/mail/store/ExchangeStore.java b/src/com/android/email/mail/store/ExchangeStore.java
index 5f1da8c..d34c7d7 100644
--- a/src/com/android/email/mail/store/ExchangeStore.java
+++ b/src/com/android/email/mail/store/ExchangeStore.java
@@ -20,8 +20,8 @@
import com.android.email.mail.Store;
import com.android.emailcommon.mail.Folder;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.service.EmailServiceProxy;
import com.android.emailcommon.service.IEmailService;
diff --git a/src/com/android/email/mail/store/ImapStore.java b/src/com/android/email/mail/store/ImapStore.java
index 53474a1..9102f41 100644
--- a/src/com/android/email/mail/store/ImapStore.java
+++ b/src/com/android/email/mail/store/ImapStore.java
@@ -32,7 +32,7 @@
import com.android.emailcommon.mail.Folder;
import com.android.emailcommon.mail.Message;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.service.EmailServiceProxy;
diff --git a/src/com/android/email/mail/store/Pop3Store.java b/src/com/android/email/mail/store/Pop3Store.java
index 6bc37d0..aa661f6 100644
--- a/src/com/android/email/mail/store/Pop3Store.java
+++ b/src/com/android/email/mail/store/Pop3Store.java
@@ -29,7 +29,7 @@
import com.android.emailcommon.mail.Message;
import com.android.emailcommon.mail.MessagingException;
import com.android.emailcommon.mail.Folder.OpenMode;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.service.EmailServiceProxy;
diff --git a/src/com/android/email/mail/transport/ExchangeSender.java b/src/com/android/email/mail/transport/ExchangeSender.java
index bacfbdf..87ba812 100644
--- a/src/com/android/email/mail/transport/ExchangeSender.java
+++ b/src/com/android/email/mail/transport/ExchangeSender.java
@@ -18,7 +18,7 @@
import com.android.email.mail.Sender;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
diff --git a/src/com/android/email/mail/transport/SmtpSender.java b/src/com/android/email/mail/transport/SmtpSender.java
index 06fc71f..8371534 100644
--- a/src/com/android/email/mail/transport/SmtpSender.java
+++ b/src/com/android/email/mail/transport/SmtpSender.java
@@ -25,7 +25,7 @@
import com.android.emailcommon.mail.AuthenticationFailedException;
import com.android.emailcommon.mail.CertificateValidationException;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.HostAuth;
diff --git a/src/com/android/email/provider/AccountBackupRestore.java b/src/com/android/email/provider/AccountBackupRestore.java
index f8ef5ff..16c1600 100644
--- a/src/com/android/email/provider/AccountBackupRestore.java
+++ b/src/com/android/email/provider/AccountBackupRestore.java
@@ -19,8 +19,8 @@
import com.android.email.Email;
import com.android.email.Preferences;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import android.content.ContentResolver;
import android.content.Context;
diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java
index a73ea7e..d3d043d 100644
--- a/src/com/android/email/provider/EmailProvider.java
+++ b/src/com/android/email/provider/EmailProvider.java
@@ -22,8 +22,8 @@
import com.android.emailcommon.AccountManagerTypes;
import com.android.emailcommon.CalendarProviderStub;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.AttachmentColumns;
@@ -204,7 +204,7 @@
// TABLE_NAMES MUST remain in the order of the BASE constants above (e.g. ACCOUNT_BASE = 0x0000,
// MESSAGE_BASE = 0x1000, etc.)
private static final String[] TABLE_NAMES = {
- EmailContent.Account.TABLE_NAME,
+ Account.TABLE_NAME,
Mailbox.TABLE_NAME,
EmailContent.Message.TABLE_NAME,
EmailContent.Attachment.TABLE_NAME,
diff --git a/src/com/android/email/service/AttachmentDownloadService.java b/src/com/android/email/service/AttachmentDownloadService.java
index e7824e1..e6c9478 100644
--- a/src/com/android/email/service/AttachmentDownloadService.java
+++ b/src/com/android/email/service/AttachmentDownloadService.java
@@ -21,8 +21,8 @@
import com.android.email.Email;
import com.android.email.EmailConnectivityManager;
import com.android.email.NotificationController;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.service.EmailServiceProxy;
diff --git a/src/com/android/email/service/EmailBroadcastProcessorService.java b/src/com/android/email/service/EmailBroadcastProcessorService.java
index 07e10d8..b86c43d 100644
--- a/src/com/android/email/service/EmailBroadcastProcessorService.java
+++ b/src/com/android/email/service/EmailBroadcastProcessorService.java
@@ -25,7 +25,7 @@
import com.android.email.mail.Store;
import com.android.email.widget.WidgetManager;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.HostAuth;
diff --git a/src/com/android/email/service/MailService.java b/src/com/android/email/service/MailService.java
index 5fb3747..e1da6e2 100644
--- a/src/com/android/email/service/MailService.java
+++ b/src/com/android/email/service/MailService.java
@@ -24,8 +24,8 @@
import com.android.email.provider.AccountBackupRestore;
import com.android.emailcommon.AccountManagerTypes;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.AccountReconciler;
@@ -752,7 +752,7 @@
}
}
- public static void setupAccountManagerAccount(Context context, EmailContent.Account account,
+ public static void setupAccountManagerAccount(Context context, Account account,
boolean email, boolean calendar, boolean contacts,
AccountManagerCallback<Bundle> callback) {
Bundle options = new Bundle();
diff --git a/src/com/android/email/service/PopImapSyncAdapterService.java b/src/com/android/email/service/PopImapSyncAdapterService.java
index 0ff871b..ac47bba 100644
--- a/src/com/android/email/service/PopImapSyncAdapterService.java
+++ b/src/com/android/email/service/PopImapSyncAdapterService.java
@@ -16,10 +16,6 @@
package com.android.email.service;
-import com.android.email.Controller;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.Mailbox;
-
import android.accounts.Account;
import android.accounts.OperationCanceledException;
import android.app.Service;
@@ -34,6 +30,11 @@
import android.os.IBinder;
import android.util.Log;
+import com.android.email.Controller;
+import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.EmailContent.AccountColumns;
+import com.android.emailcommon.provider.Mailbox;
+
public class PopImapSyncAdapterService extends Service {
private static final String TAG = "PopImapSyncAdapterService";
private static SyncAdapterImpl sSyncAdapter = null;
@@ -86,12 +87,13 @@
if (extras.getBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false)) {
String emailAddress = account.name;
// Find an EmailProvider account with the Account's email address
- Cursor c = context.getContentResolver().query(EmailContent.Account.CONTENT_URI,
- EmailContent.ID_PROJECTION, EmailContent.Account.EMAIL_ADDRESS + "=?",
+ Cursor c = context.getContentResolver().query(
+ com.android.emailcommon.provider.Account.CONTENT_URI,
+ EmailContent.ID_PROJECTION, AccountColumns.EMAIL_ADDRESS + "=?",
new String[] {emailAddress}, null);
if (c.moveToNext()) {
// If we have one, find the inbox and start it syncing
- long accountId = c.getLong(EmailContent.Account.ID_PROJECTION_COLUMN);
+ long accountId = c.getLong(EmailContent.ID_PROJECTION_COLUMN);
long mailboxId = Mailbox.findMailboxOfType(context, accountId,
Mailbox.TYPE_INBOX);
if (mailboxId > 0) {
diff --git a/src/com/android/email/widget/EmailWidget.java b/src/com/android/email/widget/EmailWidget.java
index d0a49f0..44670be 100644
--- a/src/com/android/email/widget/EmailWidget.java
+++ b/src/com/android/email/widget/EmailWidget.java
@@ -24,7 +24,7 @@
import com.android.email.activity.Welcome;
import com.android.email.provider.WidgetProvider.WidgetService;
import com.android.emailcommon.Logging;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
diff --git a/src/com/android/email/widget/EmailWidgetLoader.java b/src/com/android/email/widget/EmailWidgetLoader.java
index 4c959db2..71e3608 100644
--- a/src/com/android/email/widget/EmailWidgetLoader.java
+++ b/src/com/android/email/widget/EmailWidgetLoader.java
@@ -18,8 +18,8 @@
import com.android.email.R;
import com.android.email.data.ThrottlingCursorLoader;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.EmailContent.MessageColumns;
import com.android.emailcommon.provider.Mailbox;
diff --git a/src/com/android/email/widget/WidgetConfiguration.java b/src/com/android/email/widget/WidgetConfiguration.java
index 0f96b40..4609478 100644
--- a/src/com/android/email/widget/WidgetConfiguration.java
+++ b/src/com/android/email/widget/WidgetConfiguration.java
@@ -27,7 +27,7 @@
import com.android.email.activity.ShortcutPickerFragment;
import com.android.email.activity.ShortcutPickerFragment.AccountShortcutPickerFragment;
import com.android.email.activity.ShortcutPickerFragment.PickerCallback;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
/**
* Activity to configure the Email widget.
diff --git a/src/com/android/email/widget/WidgetManager.java b/src/com/android/email/widget/WidgetManager.java
index 878e525..87d0259 100644
--- a/src/com/android/email/widget/WidgetManager.java
+++ b/src/com/android/email/widget/WidgetManager.java
@@ -18,8 +18,8 @@
import com.android.email.Email;
import com.android.emailcommon.Logging;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
-import com.android.emailcommon.provider.EmailContent.Account;
import android.content.Context;
import android.content.SharedPreferences;
diff --git a/tests/src/com/android/email/AccountTestCase.java b/tests/src/com/android/email/AccountTestCase.java
index c7c5b23..d450ec0 100644
--- a/tests/src/com/android/email/AccountTestCase.java
+++ b/tests/src/com/android/email/AccountTestCase.java
@@ -19,8 +19,8 @@
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
import com.android.emailcommon.AccountManagerTypes;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerFuture;
diff --git a/tests/src/com/android/email/ControllerProviderOpsTests.java b/tests/src/com/android/email/ControllerProviderOpsTests.java
index a801e0a..a027c7c 100644
--- a/tests/src/com/android/email/ControllerProviderOpsTests.java
+++ b/tests/src/com/android/email/ControllerProviderOpsTests.java
@@ -19,8 +19,8 @@
import com.android.email.provider.ContentCache;
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Body;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.HostAuth;
diff --git a/tests/src/com/android/email/MessagingControllerUnitTests.java b/tests/src/com/android/email/MessagingControllerUnitTests.java
index 15977ce..c4372b8 100644
--- a/tests/src/com/android/email/MessagingControllerUnitTests.java
+++ b/tests/src/com/android/email/MessagingControllerUnitTests.java
@@ -17,7 +17,7 @@
package com.android.email;
import com.android.emailcommon.mail.MockFolder;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import android.content.ContentUris;
import android.net.Uri;
@@ -33,7 +33,7 @@
public class MessagingControllerUnitTests extends AndroidTestCase {
private long mAccountId;
- private EmailContent.Account mAccount;
+ private Account mAccount;
/**
* Delete any dummy accounts we set up for this test
@@ -44,7 +44,7 @@
if (mAccount != null) {
Uri uri = ContentUris.withAppendedId(
- EmailContent.Account.CONTENT_URI, mAccountId);
+ Account.CONTENT_URI, mAccountId);
getContext().getContentResolver().delete(uri, null, null);
}
}
@@ -76,7 +76,7 @@
* Create a dummy account with minimal fields
*/
private void createTestAccount() {
- mAccount = new EmailContent.Account();
+ mAccount = new Account();
mAccount.save(getContext());
mAccountId = mAccount.mId;
diff --git a/tests/src/com/android/email/NotificationControllerTest.java b/tests/src/com/android/email/NotificationControllerTest.java
index e4a65ac..b5ba163 100644
--- a/tests/src/com/android/email/NotificationControllerTest.java
+++ b/tests/src/com/android/email/NotificationControllerTest.java
@@ -17,7 +17,7 @@
package com.android.email;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
diff --git a/tests/src/com/android/email/RefreshManagerTest.java b/tests/src/com/android/email/RefreshManagerTest.java
index 694a6e4..853c354 100644
--- a/tests/src/com/android/email/RefreshManagerTest.java
+++ b/tests/src/com/android/email/RefreshManagerTest.java
@@ -19,7 +19,7 @@
import com.android.email.provider.ProviderTestUtils;
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
import android.test.InstrumentationTestCase;
diff --git a/tests/src/com/android/email/SecurityPolicyTests.java b/tests/src/com/android/email/SecurityPolicyTests.java
index a614c82..4dcb73f 100644
--- a/tests/src/com/android/email/SecurityPolicyTests.java
+++ b/tests/src/com/android/email/SecurityPolicyTests.java
@@ -19,8 +19,8 @@
import com.android.email.provider.ContentCache;
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.provider.Policy;
diff --git a/tests/src/com/android/email/UtilityLargeTest.java b/tests/src/com/android/email/UtilityLargeTest.java
index 3a7162f..a752563 100644
--- a/tests/src/com/android/email/UtilityLargeTest.java
+++ b/tests/src/com/android/email/UtilityLargeTest.java
@@ -17,7 +17,7 @@
package com.android.email;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.utility.Utility;
import android.content.Context;
diff --git a/tests/src/com/android/email/activity/AccountSelectorAdapterAccountsLoaderTest.java b/tests/src/com/android/email/activity/AccountSelectorAdapterAccountsLoaderTest.java
index 43f57a0..c881a1c 100644
--- a/tests/src/com/android/email/activity/AccountSelectorAdapterAccountsLoaderTest.java
+++ b/tests/src/com/android/email/activity/AccountSelectorAdapterAccountsLoaderTest.java
@@ -18,7 +18,7 @@
import com.android.email.DBTestHelper;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
import android.content.Loader;
diff --git a/tests/src/com/android/email/activity/FindParentMailboxTaskTest.java b/tests/src/com/android/email/activity/FindParentMailboxTaskTest.java
index 4e28b91..1a1340d 100644
--- a/tests/src/com/android/email/activity/FindParentMailboxTaskTest.java
+++ b/tests/src/com/android/email/activity/FindParentMailboxTaskTest.java
@@ -18,7 +18,7 @@
import com.android.email.DBTestHelper;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import android.content.Context;
diff --git a/tests/src/com/android/email/activity/MailboxFinderTest.java b/tests/src/com/android/email/activity/MailboxFinderTest.java
index b254c62..ba1ee59 100644
--- a/tests/src/com/android/email/activity/MailboxFinderTest.java
+++ b/tests/src/com/android/email/activity/MailboxFinderTest.java
@@ -22,7 +22,7 @@
import com.android.email.TestUtils;
import com.android.email.provider.ProviderTestUtils;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import android.content.Context;
diff --git a/tests/src/com/android/email/activity/MailboxFragmentAdapterTest.java b/tests/src/com/android/email/activity/MailboxFragmentAdapterTest.java
index a86b389..2bf19d1 100644
--- a/tests/src/com/android/email/activity/MailboxFragmentAdapterTest.java
+++ b/tests/src/com/android/email/activity/MailboxFragmentAdapterTest.java
@@ -18,8 +18,8 @@
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
diff --git a/tests/src/com/android/email/activity/MessageComposeTests.java b/tests/src/com/android/email/activity/MessageComposeTests.java
index 269bd9f..7d5eee3 100644
--- a/tests/src/com/android/email/activity/MessageComposeTests.java
+++ b/tests/src/com/android/email/activity/MessageComposeTests.java
@@ -23,7 +23,7 @@
import com.android.emailcommon.Logging;
import com.android.emailcommon.mail.Address;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Message;
import com.google.android.collect.Lists;
diff --git a/tests/src/com/android/email/activity/MessageListTests.java b/tests/src/com/android/email/activity/MessageListTests.java
index d282806..76d921d 100644
--- a/tests/src/com/android/email/activity/MessageListTests.java
+++ b/tests/src/com/android/email/activity/MessageListTests.java
@@ -18,7 +18,7 @@
import com.android.email.DBTestHelper;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
import android.content.Intent;
diff --git a/tests/src/com/android/email/activity/MessagesAdapterTests.java b/tests/src/com/android/email/activity/MessagesAdapterTests.java
index 1de3c1c..243230a 100644
--- a/tests/src/com/android/email/activity/MessagesAdapterTests.java
+++ b/tests/src/com/android/email/activity/MessagesAdapterTests.java
@@ -18,7 +18,7 @@
import com.android.email.DBTestHelper;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.Mailbox;
import android.content.Context;
diff --git a/tests/src/com/android/email/activity/WelcomeTests.java b/tests/src/com/android/email/activity/WelcomeTests.java
index 98144eb..c9f1446 100644
--- a/tests/src/com/android/email/activity/WelcomeTests.java
+++ b/tests/src/com/android/email/activity/WelcomeTests.java
@@ -18,7 +18,7 @@
import com.android.email.DBTestHelper;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import android.content.Context;
import android.test.AndroidTestCase;
diff --git a/tests/src/com/android/email/activity/setup/AccountSettingsTests.java b/tests/src/com/android/email/activity/setup/AccountSettingsTests.java
index 1c0a03b..15e0cc6 100644
--- a/tests/src/com/android/email/activity/setup/AccountSettingsTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSettingsTests.java
@@ -17,7 +17,7 @@
package com.android.email.activity.setup;
import com.android.email.mail.Store;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.content.ContentUris;
diff --git a/tests/src/com/android/email/activity/setup/AccountSetupAccountTypeTests.java b/tests/src/com/android/email/activity/setup/AccountSetupAccountTypeTests.java
index 86f394a..e035edc 100644
--- a/tests/src/com/android/email/activity/setup/AccountSetupAccountTypeTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSetupAccountTypeTests.java
@@ -25,7 +25,7 @@
import android.view.View;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import java.net.URISyntaxException;
diff --git a/tests/src/com/android/email/activity/setup/AccountSetupExchangeTests.java b/tests/src/com/android/email/activity/setup/AccountSetupExchangeTests.java
index be76e07..711d739 100644
--- a/tests/src/com/android/email/activity/setup/AccountSetupExchangeTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSetupExchangeTests.java
@@ -27,8 +27,7 @@
import com.android.email.R;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import java.net.URISyntaxException;
@@ -229,7 +228,7 @@
* Create an intent with the Account in it
*/
private Intent getTestIntent(String storeUriString) throws URISyntaxException {
- EmailContent.Account account = new EmailContent.Account();
+ Account account = new Account();
Context context = getInstrumentation().getTargetContext();
HostAuth auth = account.getOrCreateHostAuthRecv(context);
HostAuth.setHostAuthFromString(auth, storeUriString);
diff --git a/tests/src/com/android/email/activity/setup/AccountSetupIncomingTests.java b/tests/src/com/android/email/activity/setup/AccountSetupIncomingTests.java
index 5395c4f..5a5786b 100644
--- a/tests/src/com/android/email/activity/setup/AccountSetupIncomingTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSetupIncomingTests.java
@@ -17,7 +17,7 @@
package com.android.email.activity.setup;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.content.Context;
@@ -186,7 +186,7 @@
*/
private Intent getTestIntent(String storeUriString)
throws URISyntaxException {
- EmailContent.Account account = new EmailContent.Account();
+ Account account = new Account();
Context context = getInstrumentation().getTargetContext();
HostAuth auth = account.getOrCreateHostAuthRecv(context);
HostAuth.setHostAuthFromString(auth, storeUriString);
diff --git a/tests/src/com/android/email/activity/setup/AccountSetupOptionsTests.java b/tests/src/com/android/email/activity/setup/AccountSetupOptionsTests.java
index e86105b..9094084 100644
--- a/tests/src/com/android/email/activity/setup/AccountSetupOptionsTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSetupOptionsTests.java
@@ -18,7 +18,7 @@
import com.android.email.R;
import com.android.email.mail.Store;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.content.Context;
@@ -59,7 +59,7 @@
getActivityAndFields();
- boolean hasPush = frequencySpinnerHasValue(EmailContent.Account.CHECK_INTERVAL_PUSH);
+ boolean hasPush = frequencySpinnerHasValue(Account.CHECK_INTERVAL_PUSH);
assertFalse(hasPush);
}
@@ -73,7 +73,7 @@
getActivityAndFields();
- boolean hasPush = frequencySpinnerHasValue(EmailContent.Account.CHECK_INTERVAL_PUSH);
+ boolean hasPush = frequencySpinnerHasValue(Account.CHECK_INTERVAL_PUSH);
assertFalse(hasPush);
}
@@ -93,7 +93,7 @@
getActivityAndFields();
- boolean hasPush = frequencySpinnerHasValue(EmailContent.Account.CHECK_INTERVAL_PUSH);
+ boolean hasPush = frequencySpinnerHasValue(Account.CHECK_INTERVAL_PUSH);
assertTrue(hasPush);
}
@@ -176,7 +176,7 @@
*/
private Intent getTestIntent(String name, String storeUri)
throws URISyntaxException {
- EmailContent.Account account = new EmailContent.Account();
+ Account account = new Account();
account.setSenderName(name);
Context context = getInstrumentation().getTargetContext();
HostAuth auth = account.getOrCreateHostAuthRecv(context);
diff --git a/tests/src/com/android/email/activity/setup/AccountSetupOutgoingTests.java b/tests/src/com/android/email/activity/setup/AccountSetupOutgoingTests.java
index 42e268a..ff7832d 100644
--- a/tests/src/com/android/email/activity/setup/AccountSetupOutgoingTests.java
+++ b/tests/src/com/android/email/activity/setup/AccountSetupOutgoingTests.java
@@ -17,7 +17,7 @@
package com.android.email.activity.setup;
import com.android.email.R;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.content.Context;
@@ -182,7 +182,7 @@
*/
private Intent getTestIntent(String senderUriString)
throws URISyntaxException {
- EmailContent.Account account = new EmailContent.Account();
+ Account account = new Account();
Context context = getInstrumentation().getTargetContext();
HostAuth auth = account.getOrCreateHostAuthSend(context);
HostAuth.setHostAuthFromString(auth, senderUriString);
diff --git a/tests/src/com/android/email/mail/StoreTests.java b/tests/src/com/android/email/mail/StoreTests.java
index 12286bd..631886e 100644
--- a/tests/src/com/android/email/mail/StoreTests.java
+++ b/tests/src/com/android/email/mail/StoreTests.java
@@ -25,8 +25,8 @@
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
diff --git a/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java b/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java
index 9379d78..8db8fca 100644
--- a/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java
+++ b/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java
@@ -42,7 +42,7 @@
import com.android.emailcommon.mail.Message.RecipientType;
import com.android.emailcommon.mail.MessagingException;
import com.android.emailcommon.mail.Part;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.Utility;
diff --git a/tests/src/com/android/email/mail/store/Pop3StoreUnitTests.java b/tests/src/com/android/email/mail/store/Pop3StoreUnitTests.java
index 39b3002..ec6e9ea 100644
--- a/tests/src/com/android/email/mail/store/Pop3StoreUnitTests.java
+++ b/tests/src/com/android/email/mail/store/Pop3StoreUnitTests.java
@@ -29,7 +29,7 @@
import com.android.emailcommon.mail.Message;
import com.android.emailcommon.mail.Message.RecipientType;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.HostAuth;
import android.test.InstrumentationTestCase;
diff --git a/tests/src/com/android/email/mail/transport/SmtpSenderUnitTests.java b/tests/src/com/android/email/mail/transport/SmtpSenderUnitTests.java
index 945335f..82fa7c3 100644
--- a/tests/src/com/android/email/mail/transport/SmtpSenderUnitTests.java
+++ b/tests/src/com/android/email/mail/transport/SmtpSenderUnitTests.java
@@ -21,7 +21,7 @@
import com.android.email.provider.EmailProvider;
import com.android.emailcommon.mail.Address;
import com.android.emailcommon.mail.MessagingException;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Body;
import com.android.emailcommon.provider.EmailContent.Message;
diff --git a/tests/src/com/android/email/provider/AccountBackupRestoreTests.java b/tests/src/com/android/email/provider/AccountBackupRestoreTests.java
index a970552..6c41753 100644
--- a/tests/src/com/android/email/provider/AccountBackupRestoreTests.java
+++ b/tests/src/com/android/email/provider/AccountBackupRestoreTests.java
@@ -16,8 +16,8 @@
package com.android.email.provider;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import android.content.ContentResolver;
diff --git a/tests/src/com/android/email/provider/AttachmentProviderTests.java b/tests/src/com/android/email/provider/AttachmentProviderTests.java
index d13f321..e02ccf7 100644
--- a/tests/src/com/android/email/provider/AttachmentProviderTests.java
+++ b/tests/src/com/android/email/provider/AttachmentProviderTests.java
@@ -19,8 +19,8 @@
import com.android.email.AttachmentInfo;
import com.android.email.R;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
diff --git a/tests/src/com/android/email/provider/ContentCacheTests.java b/tests/src/com/android/email/provider/ContentCacheTests.java
index 8b141fd..aea697e 100644
--- a/tests/src/com/android/email/provider/ContentCacheTests.java
+++ b/tests/src/com/android/email/provider/ContentCacheTests.java
@@ -19,8 +19,8 @@
import com.android.email.provider.ContentCache.CacheToken;
import com.android.email.provider.ContentCache.CachedCursor;
import com.android.email.provider.ContentCache.TokenList;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.Mailbox;
import android.content.ContentResolver;
diff --git a/tests/src/com/android/email/provider/PolicyTests.java b/tests/src/com/android/email/provider/PolicyTests.java
index 0a6f7a2..a8f7f3b 100644
--- a/tests/src/com/android/email/provider/PolicyTests.java
+++ b/tests/src/com/android/email/provider/PolicyTests.java
@@ -16,8 +16,8 @@
package com.android.email.provider;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.AttachmentColumns;
import com.android.emailcommon.provider.EmailContent.Message;
diff --git a/tests/src/com/android/email/provider/ProviderTestUtils.java b/tests/src/com/android/email/provider/ProviderTestUtils.java
index d6277ac..20491b5 100644
--- a/tests/src/com/android/email/provider/ProviderTestUtils.java
+++ b/tests/src/com/android/email/provider/ProviderTestUtils.java
@@ -17,8 +17,8 @@
package com.android.email.provider;
import com.android.emailcommon.internet.Rfc822Output;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Body;
import com.android.emailcommon.provider.EmailContent.Message;
@@ -54,7 +54,7 @@
account.mEmailAddress = name + "@android.com";
account.mSyncKey = "sync-key-" + name;
account.mSyncLookback = 1;
- account.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER;
+ account.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
account.mHostAuthKeyRecv = 0;
account.mHostAuthKeySend = 0;
account.mFlags = 4;
@@ -78,7 +78,7 @@
*/
public static void deleteAccount(Context context, long accountId) {
context.getContentResolver().delete(ContentUris.withAppendedId(
- EmailContent.Account.CONTENT_URI, accountId), null, null);
+ Account.CONTENT_URI, accountId), null, null);
}
/**
@@ -139,7 +139,7 @@
box.mDelimiter = delimiter;
box.mSyncKey = "sync-key-" + name;
box.mSyncLookback = 2;
- box.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER;
+ box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
box.mSyncTime = 3;
box.mFlagVisible = true;
box.mFlags = 5;
diff --git a/tests/src/com/android/email/provider/ProviderTests.java b/tests/src/com/android/email/provider/ProviderTests.java
index 0ce3da7..2a013ec 100644
--- a/tests/src/com/android/email/provider/ProviderTests.java
+++ b/tests/src/com/android/email/provider/ProviderTests.java
@@ -17,8 +17,8 @@
package com.android.email.provider;
import com.android.emailcommon.AccountManagerTypes;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.AttachmentColumns;
@@ -135,7 +135,7 @@
Account account1 = ProviderTestUtils.setupAccount("account-save", true, mMockContext);
long account1Id = account1.mId;
- Account account2 = EmailContent.Account.restoreAccountWithId(mMockContext, account1Id);
+ Account account2 = Account.restoreAccountWithId(mMockContext, account1Id);
ProviderTestUtils.assertAccountEqual("testAccountSave", account1, account2);
}
@@ -154,7 +154,7 @@
long account1Id = account1.mId;
// Confirm account reads back correctly
- Account account1get = EmailContent.Account.restoreAccountWithId(mMockContext, account1Id);
+ Account account1get = Account.restoreAccountWithId(mMockContext, account1Id);
ProviderTestUtils.assertAccountEqual("testAccountSave", account1, account1get);
// Confirm hostauth fields can be accessed & read back correctly
@@ -2083,7 +2083,7 @@
box.mDelimiter = '/';
box.mSyncKey = "sync-key";
box.mSyncLookback = 2;
- box.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER;
+ box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
box.mSyncTime = 3;
box.mFlagVisible = true;
box.mFlags = 5;
diff --git a/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java b/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java
index 127ef37..712cced 100644
--- a/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java
+++ b/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java
@@ -22,7 +22,7 @@
import com.android.email.provider.ProviderTestUtils;
import com.android.email.service.AttachmentDownloadService.DownloadRequest;
import com.android.email.service.AttachmentDownloadService.DownloadSet;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.Mailbox;
diff --git a/tests/src/com/android/email/service/EmailBroadcastProcessorServiceTests.java b/tests/src/com/android/email/service/EmailBroadcastProcessorServiceTests.java
index 76ff7cb..29c61fd 100644
--- a/tests/src/com/android/email/service/EmailBroadcastProcessorServiceTests.java
+++ b/tests/src/com/android/email/service/EmailBroadcastProcessorServiceTests.java
@@ -18,7 +18,7 @@
import com.android.email.AccountTestCase;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.AccountColumns;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
diff --git a/tests/src/com/android/email/service/MailServiceTests.java b/tests/src/com/android/email/service/MailServiceTests.java
index 71ce790..ae27647 100644
--- a/tests/src/com/android/email/service/MailServiceTests.java
+++ b/tests/src/com/android/email/service/MailServiceTests.java
@@ -22,8 +22,8 @@
import com.android.email.provider.ProviderTestUtils;
import com.android.email.service.MailService.AccountSyncReport;
import com.android.emailcommon.AccountManagerTypes;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.HostAuth;
import com.android.emailcommon.utility.Utility;
diff --git a/tests/src/com/android/emailcommon/mail/MessageTestUtils.java b/tests/src/com/android/emailcommon/mail/MessageTestUtils.java
index 8ccc5da..643e682 100644
--- a/tests/src/com/android/emailcommon/mail/MessageTestUtils.java
+++ b/tests/src/com/android/emailcommon/mail/MessageTestUtils.java
@@ -21,7 +21,7 @@
import com.android.emailcommon.internet.MimeMessage;
import com.android.emailcommon.internet.MimeMultipart;
import com.android.emailcommon.internet.TextBody;
-import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.utility.AttachmentUtilities;
import android.net.Uri;
@@ -62,7 +62,7 @@
* @param account Account object
* @return AttachmentProvider content URI
*/
- public static Uri contentUri(long attachmentId, EmailContent.Account account) {
+ public static Uri contentUri(long attachmentId, Account account) {
return AttachmentUtilities.getAttachmentUri(account.mId, attachmentId);
}
diff --git a/tests/src/com/android/emailcommon/provider/MailboxTests.java b/tests/src/com/android/emailcommon/provider/MailboxTests.java
index 2c36423..8a6dec4 100644
--- a/tests/src/com/android/emailcommon/provider/MailboxTests.java
+++ b/tests/src/com/android/emailcommon/provider/MailboxTests.java
@@ -19,7 +19,6 @@
import com.android.email.provider.ContentCache;
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.EmailContent.MessageColumns;
diff --git a/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java b/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java
index 5d7cc4c..976b072 100644
--- a/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java
+++ b/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java
@@ -18,8 +18,8 @@
import com.android.email.provider.EmailProvider;
import com.android.email.provider.ProviderTestUtils;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
-import com.android.emailcommon.provider.EmailContent.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.Message;
import com.android.emailcommon.provider.EmailContent.MessageColumns;
diff --git a/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java b/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java
index d0edd55..1cf3f48 100644
--- a/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java
+++ b/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java
@@ -21,7 +21,7 @@
import com.android.email.R;
import com.android.email.TestUtils;
import com.android.email.provider.ProviderTestUtils;
-import com.android.emailcommon.provider.EmailContent.Account;
+import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.EmailContent.Message;