From 53ea83ebf91f820692e8fa8e781f5cc982dd94db Mon Sep 17 00:00:00 2001 From: Ben Komalo Date: Fri, 13 May 2011 17:26:27 -0700 Subject: [PATCH] Move Mailbox to top level class. No other changes made. Change-Id: I3d8f3c521dc0d902be313b25252b4b6a4a96e7ee --- .../emailcommon/provider/EmailContent.java | 444 ---------------- .../android/emailcommon/provider/Mailbox.java | 473 ++++++++++++++++++ .../android/emailcommon/utility/Utility.java | 2 +- src/com/android/email/Controller.java | 4 +- src/com/android/email/FolderProperties.java | 2 +- src/com/android/email/LegacyConversions.java | 6 +- .../android/email/MessagingController.java | 26 +- .../android/email/NotificationController.java | 2 +- .../activity/AccountSelectorAdapter.java | 2 +- .../email/activity/ActivityHelper.java | 2 +- .../android/email/activity/EmailActivity.java | 2 +- .../android/email/activity/MailboxFinder.java | 2 +- .../activity/MailboxFragmentAdapter.java | 4 +- .../email/activity/MailboxListFragment.java | 2 +- .../email/activity/MailboxListItem.java | 2 +- .../email/activity/MailboxMoveToAdapter.java | 5 +- .../email/activity/MailboxesAdapter.java | 2 +- .../email/activity/MessageCompose.java | 4 +- .../email/activity/MessageListFragment.java | 7 +- .../email/activity/MessageViewFragment.java | 2 +- .../activity/MessageViewFragmentBase.java | 2 +- .../email/activity/MessagesAdapter.java | 2 +- .../email/activity/MoveMessageToDialog.java | 2 +- .../email/activity/UIControllerOnePane.java | 2 +- .../email/activity/UIControllerTwoPane.java | 2 +- .../email/data/MailboxAccountLoader.java | 2 +- src/com/android/email/mail/Store.java | 2 +- .../android/email/mail/store/ImapFolder.java | 2 +- .../android/email/mail/store/ImapStore.java | 2 +- .../android/email/mail/store/Pop3Store.java | 2 +- .../android/email/provider/EmailProvider.java | 4 +- .../android/email/service/MailService.java | 2 +- .../service/PopImapSyncAdapterService.java | 4 +- src/com/android/email/widget/EmailWidget.java | 2 +- .../email/ControllerProviderOpsTests.java | 10 +- .../email/NotificationControllerTest.java | 2 +- .../android/email/SecurityPolicyTests.java | 2 +- .../email/activity/MailboxFinderTest.java | 5 +- .../email/activity/MailboxesAdapterTest.java | 2 +- .../data/MailboxAccountLoaderTestCase.java | 2 +- .../com/android/email/mail/StoreTests.java | 2 +- .../email/mail/store/ImapStoreUnitTests.java | 2 +- .../provider/AttachmentProviderTests.java | 2 +- .../email/provider/ContentCacheTests.java | 2 +- .../android/email/provider/PolicyTests.java | 2 +- .../email/provider/ProviderTestUtils.java | 2 +- .../android/email/provider/ProviderTests.java | 2 +- .../AttachmentDownloadServiceTests.java | 2 +- .../android/email/widget/WidgetViewTests.java | 2 +- .../emailcommon/provider/MailboxTests.java | 3 +- .../utility/UtilityMediumTests.java | 2 +- .../emailcommon/utility/UtilityUnitTests.java | 2 +- 52 files changed, 550 insertions(+), 525 deletions(-) create mode 100644 emailcommon/src/com/android/emailcommon/provider/Mailbox.java diff --git a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java index e73fe6158..a55bedcf5 100644 --- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java +++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java @@ -16,7 +16,6 @@ package com.android.emailcommon.provider; -import com.android.emailcommon.Logging; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; @@ -34,12 +33,10 @@ import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; import android.text.TextUtils; -import android.util.Log; import java.io.File; import java.net.URI; import java.net.URISyntaxException; -import java.security.InvalidParameterException; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -2233,447 +2230,6 @@ public abstract class EmailContent { public static final String LAST_SEEN_MESSAGE_KEY = "lastSeenMessageKey"; } - public static final class Mailbox extends EmailContent implements SyncColumns, MailboxColumns { - public static final String TABLE_NAME = "Mailbox"; - @SuppressWarnings("hiding") - public static final Uri CONTENT_URI = Uri.parse(EmailContent.CONTENT_URI + "/mailbox"); - public static final Uri ADD_TO_FIELD_URI = - Uri.parse(EmailContent.CONTENT_URI + "/mailboxIdAddToField"); - - public String mDisplayName; - public String mServerId; - public String mParentServerId; - public long mParentKey; - public long mAccountKey; - public int mType; - public int mDelimiter; - public String mSyncKey; - public int mSyncLookback; - public int mSyncInterval; - public long mSyncTime; - public boolean mFlagVisible = true; - public int mFlags; - public int mVisibleLimit; - public String mSyncStatus; - public long mLastSeenMessageKey; - - public static final int CONTENT_ID_COLUMN = 0; - public static final int CONTENT_DISPLAY_NAME_COLUMN = 1; - public static final int CONTENT_SERVER_ID_COLUMN = 2; - public static final int CONTENT_PARENT_SERVER_ID_COLUMN = 3; - public static final int CONTENT_ACCOUNT_KEY_COLUMN = 4; - public static final int CONTENT_TYPE_COLUMN = 5; - public static final int CONTENT_DELIMITER_COLUMN = 6; - public static final int CONTENT_SYNC_KEY_COLUMN = 7; - public static final int CONTENT_SYNC_LOOKBACK_COLUMN = 8; - public static final int CONTENT_SYNC_INTERVAL_COLUMN = 9; - public static final int CONTENT_SYNC_TIME_COLUMN = 10; - public static final int CONTENT_FLAG_VISIBLE_COLUMN = 11; - public static final int CONTENT_FLAGS_COLUMN = 12; - public static final int CONTENT_VISIBLE_LIMIT_COLUMN = 13; - public static final int CONTENT_SYNC_STATUS_COLUMN = 14; - public static final int CONTENT_PARENT_KEY_COLUMN = 15; - public static final int CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN = 16; - - /** - * NOTE: If fields are added or removed, the method {@link #getHashes()} - * MUST be updated. - */ - public static final String[] CONTENT_PROJECTION = new String[] { - RECORD_ID, MailboxColumns.DISPLAY_NAME, MailboxColumns.SERVER_ID, - MailboxColumns.PARENT_SERVER_ID, MailboxColumns.ACCOUNT_KEY, MailboxColumns.TYPE, - MailboxColumns.DELIMITER, MailboxColumns.SYNC_KEY, MailboxColumns.SYNC_LOOKBACK, - MailboxColumns.SYNC_INTERVAL, MailboxColumns.SYNC_TIME, - MailboxColumns.FLAG_VISIBLE, MailboxColumns.FLAGS, MailboxColumns.VISIBLE_LIMIT, - MailboxColumns.SYNC_STATUS, MailboxColumns.PARENT_KEY, - MailboxColumns.LAST_SEEN_MESSAGE_KEY, - }; - - private static final String ACCOUNT_AND_MAILBOX_TYPE_SELECTION = - MailboxColumns.ACCOUNT_KEY + " =? AND " + - MailboxColumns.TYPE + " =?"; - private static final String MAILBOX_TYPE_SELECTION = - MailboxColumns.TYPE + " =?"; - /** Selection by server pathname for a given account */ - private static final String PATH_AND_ACCOUNT_SELECTION = - MailboxColumns.SERVER_ID + "=? and " + MailboxColumns.ACCOUNT_KEY + "=?"; - - private static final String[] MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION = new String [] { - "sum(" + MailboxColumns.UNREAD_COUNT + ")" - }; - private static final int UNREAD_COUNT_COUNT_COLUMN = 0; - private static final String[] MAILBOX_SUM_OF_MESSAGE_COUNT_PROJECTION = new String [] { - "sum(" + MailboxColumns.MESSAGE_COUNT + ")" - }; - private static final int MESSAGE_COUNT_COUNT_COLUMN = 0; - - private static final String[] MAILBOX_TYPE_PROJECTION = new String [] { - MailboxColumns.TYPE - }; - private static final int MAILBOX_TYPE_TYPE_COLUMN = 0; - - private static final String[] MAILBOX_DISPLAY_NAME_PROJECTION = new String [] { - MailboxColumns.DISPLAY_NAME - }; - private static final int MAILBOX_DISPLAY_NAME_COLUMN = 0; - - public static final long NO_MAILBOX = -1; - - // Sentinel values for the mSyncInterval field of both Mailbox records - public static final int CHECK_INTERVAL_NEVER = -1; - public static final int CHECK_INTERVAL_PUSH = -2; - // The following two sentinel values are used by EAS - // Ping indicates that the EAS mailbox is synced based on a "ping" from the server - public static final int CHECK_INTERVAL_PING = -3; - // Push-Hold indicates an EAS push or ping Mailbox shouldn't sync just yet - public static final int CHECK_INTERVAL_PUSH_HOLD = -4; - - // Sentinels for PARENT_KEY - public static final long PARENT_KEY_NONE = -1L; - public static final long PARENT_KEY_UNINITIALIZED = 0L; - - private static final String WHERE_TYPE_AND_ACCOUNT_KEY = - MailboxColumns.TYPE + "=? and " + MailboxColumns.ACCOUNT_KEY + "=?"; - - public static final Integer[] INVALID_DROP_TARGETS = new Integer[] {Mailbox.TYPE_DRAFTS, - Mailbox.TYPE_OUTBOX, Mailbox.TYPE_SENT}; - - public static final String USER_VISIBLE_MAILBOX_SELECTION = - MailboxColumns.TYPE + "<" + Mailbox.TYPE_NOT_EMAIL + - " AND " + MailboxColumns.FLAG_VISIBLE + "=1"; - - // Types of mailboxes. The list is ordered to match a typical UI presentation, e.g. - // placing the inbox at the top. - // Arrays of "special_mailbox_display_names" and "special_mailbox_icons" are depends on - // types Id of mailboxes. - /** No type specified */ - public static final int TYPE_NONE = -1; - /** The "main" mailbox for the account, almost always referred to as "Inbox" */ - public static final int TYPE_INBOX = 0; - // Types of mailboxes - /** Generic mailbox that holds mail */ - public static final int TYPE_MAIL = 1; - /** Parent-only mailbox; does not hold any mail */ - public static final int TYPE_PARENT = 2; - /** Drafts mailbox */ - public static final int TYPE_DRAFTS = 3; - /** Local mailbox associated with the account's outgoing mail */ - public static final int TYPE_OUTBOX = 4; - /** Sent mail; mail that was sent from the account */ - public static final int TYPE_SENT = 5; - /** Deleted mail */ - public static final int TYPE_TRASH = 6; - /** Junk mail */ - public static final int TYPE_JUNK = 7; - /** Search results */ - public static final int TYPE_SEARCH = 8; - - // Types after this are used for non-mail mailboxes (as in EAS) - public static final int TYPE_NOT_EMAIL = 0x40; - public static final int TYPE_CALENDAR = 0x41; - public static final int TYPE_CONTACTS = 0x42; - public static final int TYPE_TASKS = 0x43; - public static final int TYPE_EAS_ACCOUNT_MAILBOX = 0x44; - public static final int TYPE_UNKNOWN = 0x45; - - public static final int TYPE_NOT_SYNCABLE = 0x100; - // A mailbox that holds Messages that are attachments - public static final int TYPE_ATTACHMENT = 0x101; - - // Bit field flags; each is defined below - // Warning: Do not read these flags until POP/IMAP/EAS all populate them - /** No flags set */ - public static final int FLAG_NONE = 0; - /** Has children in the mailbox hierarchy */ - public static final int FLAG_HAS_CHILDREN = 1<<0; - /** Children are visible in the UI */ - public static final int FLAG_CHILDREN_VISIBLE = 1<<1; - /** cannot receive "pushed" mail */ - public static final int FLAG_CANT_PUSH = 1<<2; - /** can hold emails (i.e. some parent mailboxes cannot themselves contain mail) */ - public static final int FLAG_HOLDS_MAIL = 1<<3; - /** can be used as a target for moving messages within the account */ - public static final int FLAG_ACCEPTS_MOVED_MAIL = 1<<4; - /** can be used as a target for appending messages */ - public static final int FLAG_ACCEPTS_APPENDED_MAIL = 1<<5; - - // Magic mailbox ID's - // NOTE: This is a quick solution for merged mailboxes. I would rather implement this - // with a more generic way of packaging and sharing queries between activities - public static final long QUERY_ALL_INBOXES = -2; - public static final long QUERY_ALL_UNREAD = -3; - public static final long QUERY_ALL_FAVORITES = -4; - public static final long QUERY_ALL_DRAFTS = -5; - public static final long QUERY_ALL_OUTBOX = -6; - - public Mailbox() { - mBaseUri = CONTENT_URI; - } - - /** - * Restore a Mailbox from the database, given its unique id - * @param context - * @param id - * @return the instantiated Mailbox - */ - public static Mailbox restoreMailboxWithId(Context context, long id) { - return EmailContent.restoreContentWithId(context, Mailbox.class, - Mailbox.CONTENT_URI, Mailbox.CONTENT_PROJECTION, id); - } - - /** - * Returns a Mailbox from the database, given its pathname and account id. All mailbox - * paths for a particular account must be unique. Paths are stored in the column - * {@link MailboxColumns#SERVER_ID} for want of yet another column in the table. - * @param context - * @param accountId the ID of the account - * @param path the fully qualified, remote pathname - */ - public static Mailbox restoreMailboxForPath(Context context, long accountId, String path) { - Cursor c = context.getContentResolver().query( - Mailbox.CONTENT_URI, - Mailbox.CONTENT_PROJECTION, - Mailbox.PATH_AND_ACCOUNT_SELECTION, - new String[] { path, Long.toString(accountId) }, - null); - if (c == null) throw new ProviderUnavailableException(); - try { - Mailbox mailbox = null; - if (c.moveToFirst()) { - mailbox = getContent(c, Mailbox.class); - if (c.moveToNext()) { - Log.w(Logging.LOG_TAG, "Multiple mailboxes named \"" + path + "\""); - } - } else { - Log.i(Logging.LOG_TAG, "Could not find mailbox at \"" + path + "\""); - } - return mailbox; - } finally { - c.close(); - } - } - - @Override - public void restore(Cursor cursor) { - mBaseUri = CONTENT_URI; - mId = cursor.getLong(CONTENT_ID_COLUMN); - mDisplayName = cursor.getString(CONTENT_DISPLAY_NAME_COLUMN); - mServerId = cursor.getString(CONTENT_SERVER_ID_COLUMN); - mParentServerId = cursor.getString(CONTENT_PARENT_SERVER_ID_COLUMN); - mParentKey = cursor.getLong(CONTENT_PARENT_KEY_COLUMN); - mAccountKey = cursor.getLong(CONTENT_ACCOUNT_KEY_COLUMN); - mType = cursor.getInt(CONTENT_TYPE_COLUMN); - mDelimiter = cursor.getInt(CONTENT_DELIMITER_COLUMN); - mSyncKey = cursor.getString(CONTENT_SYNC_KEY_COLUMN); - mSyncLookback = cursor.getInt(CONTENT_SYNC_LOOKBACK_COLUMN); - mSyncInterval = cursor.getInt(CONTENT_SYNC_INTERVAL_COLUMN); - mSyncTime = cursor.getLong(CONTENT_SYNC_TIME_COLUMN); - mFlagVisible = cursor.getInt(CONTENT_FLAG_VISIBLE_COLUMN) == 1; - mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN); - mVisibleLimit = cursor.getInt(CONTENT_VISIBLE_LIMIT_COLUMN); - mSyncStatus = cursor.getString(CONTENT_SYNC_STATUS_COLUMN); - mLastSeenMessageKey = cursor.getLong(CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN); - } - - @Override - public ContentValues toContentValues() { - ContentValues values = new ContentValues(); - values.put(MailboxColumns.DISPLAY_NAME, mDisplayName); - values.put(MailboxColumns.SERVER_ID, mServerId); - values.put(MailboxColumns.PARENT_SERVER_ID, mParentServerId); - values.put(MailboxColumns.PARENT_KEY, mParentKey); - values.put(MailboxColumns.ACCOUNT_KEY, mAccountKey); - values.put(MailboxColumns.TYPE, mType); - values.put(MailboxColumns.DELIMITER, mDelimiter); - values.put(MailboxColumns.SYNC_KEY, mSyncKey); - values.put(MailboxColumns.SYNC_LOOKBACK, mSyncLookback); - values.put(MailboxColumns.SYNC_INTERVAL, mSyncInterval); - values.put(MailboxColumns.SYNC_TIME, mSyncTime); - values.put(MailboxColumns.FLAG_VISIBLE, mFlagVisible); - values.put(MailboxColumns.FLAGS, mFlags); - values.put(MailboxColumns.VISIBLE_LIMIT, mVisibleLimit); - values.put(MailboxColumns.SYNC_STATUS, mSyncStatus); - values.put(MailboxColumns.LAST_SEEN_MESSAGE_KEY, mLastSeenMessageKey); - return values; - } - - /** - * Convenience method to return the id of a given type of Mailbox for a given Account - * @param context the caller's context, used to get a ContentResolver - * @param accountId the id of the account to be queried - * @param type the mailbox type, as defined above - * @return the id of the mailbox, or -1 if not found - */ - public static long findMailboxOfType(Context context, long accountId, int type) { - String[] bindArguments = new String[] {Long.toString(type), Long.toString(accountId)}; - return Utility.getFirstRowLong(context, Mailbox.CONTENT_URI, - ID_PROJECTION, WHERE_TYPE_AND_ACCOUNT_KEY, bindArguments, null, - ID_PROJECTION_COLUMN, NO_MAILBOX); - } - - /** - * Convenience method that returns the mailbox found using the method above - */ - public static Mailbox restoreMailboxOfType(Context context, long accountId, int type) { - long mailboxId = findMailboxOfType(context, accountId, type); - if (mailboxId != Mailbox.NO_MAILBOX) { - return Mailbox.restoreMailboxWithId(context, mailboxId); - } - return null; - } - - public static int getUnreadCountByAccountAndMailboxType(Context context, long accountId, - int type) { - return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, - MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION, - ACCOUNT_AND_MAILBOX_TYPE_SELECTION, - new String[] { String.valueOf(accountId), String.valueOf(type) }, - null, UNREAD_COUNT_COUNT_COLUMN, 0); - } - - public static int getUnreadCountByMailboxType(Context context, int type) { - return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, - MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION, - MAILBOX_TYPE_SELECTION, - new String[] { String.valueOf(type) }, null, UNREAD_COUNT_COUNT_COLUMN, 0); - } - - public static int getMessageCountByMailboxType(Context context, int type) { - return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, - MAILBOX_SUM_OF_MESSAGE_COUNT_PROJECTION, - MAILBOX_TYPE_SELECTION, - new String[] { String.valueOf(type) }, null, MESSAGE_COUNT_COUNT_COLUMN, 0); - } - - /** - * Return the mailbox for a message with a given id - * @param context the caller's context - * @param messageId the id of the message - * @return the mailbox, or null if the mailbox doesn't exist - */ - public static Mailbox getMailboxForMessageId(Context context, long messageId) { - long mailboxId = Message.getKeyColumnLong(context, messageId, - MessageColumns.MAILBOX_KEY); - if (mailboxId != -1) { - return Mailbox.restoreMailboxWithId(context, mailboxId); - } - return null; - } - - /** - * @return mailbox type, or -1 if mailbox not found. - */ - public static int getMailboxType(Context context, long mailboxId) { - Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); - return Utility.getFirstRowInt(context, url, MAILBOX_TYPE_PROJECTION, - null, null, null, MAILBOX_TYPE_TYPE_COLUMN, -1); - } - - /** - * @return mailbox display name, or null if mailbox not found. - */ - public static String getDisplayName(Context context, long mailboxId) { - Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); - return Utility.getFirstRowString(context, url, MAILBOX_DISPLAY_NAME_PROJECTION, - null, null, null, MAILBOX_DISPLAY_NAME_COLUMN); - } - - /** - * @param mailboxId ID of a mailbox. This method accepts magic mailbox IDs, such as - * {@link #QUERY_ALL_INBOXES}. (They're all non-refreshable.) - * @return true if a mailbox is refreshable. - */ - public static boolean isRefreshable(Context context, long mailboxId) { - if (mailboxId < 0) { - return false; // magic mailboxes - } - switch (getMailboxType(context, mailboxId)) { - case -1: // not found - case TYPE_DRAFTS: - case TYPE_OUTBOX: - return false; - } - return true; - } - - /** - * @param mailboxId ID of a mailbox. This method DOES NOT accept magic mailbox IDs, such as - * {@link #QUERY_ALL_INBOXES} (because only the actual mailbox ID matters here. e.g. - * {@link #QUERY_ALL_FAVORITES} can contain ANY kind of messages), so don't pass a negative - * value. - * @return true if messages in a mailbox can be moved to another mailbox. - * This method only checks the mailbox information. It doesn't check its account/protocol, - * so it may return true even for POP3 mailbox. - */ - public static boolean canMoveFrom(Context context, long mailboxId) { - if (mailboxId < 0) { - throw new InvalidParameterException(); - } - Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); - int type = Utility.getFirstRowInt(context, url, MAILBOX_TYPE_PROJECTION, - null, null, null, MAILBOX_TYPE_TYPE_COLUMN); - switch (type) { - case TYPE_INBOX: - case TYPE_MAIL: - case TYPE_TRASH: - case TYPE_JUNK: - return true; - } - return false; // TYPE_DRAFTS, TYPE_OUTBOX, TYPE_SENT, etc - } - - /** - * @return true if messages in a mailbox of a type can be replied/forwarded. - */ - public static boolean isMailboxTypeReplyAndForwardable(int type) { - return (type != TYPE_TRASH) && (type != TYPE_DRAFTS); - } - - /** - * Returns a set of hashes that can identify this mailbox. These can be used to - * determine if any of the fields have been modified. - */ - public Object[] getHashes() { - Object[] hash = new Object[CONTENT_PROJECTION.length]; - - hash[CONTENT_ID_COLUMN] - = mId; - hash[CONTENT_DISPLAY_NAME_COLUMN] - = mDisplayName; - hash[CONTENT_SERVER_ID_COLUMN] - = mServerId; - hash[CONTENT_PARENT_SERVER_ID_COLUMN] - = mParentServerId; - hash[CONTENT_ACCOUNT_KEY_COLUMN] - = mAccountKey; - hash[CONTENT_TYPE_COLUMN] - = mType; - hash[CONTENT_DELIMITER_COLUMN] - = mDelimiter; - hash[CONTENT_SYNC_KEY_COLUMN] - = mSyncKey; - hash[CONTENT_SYNC_LOOKBACK_COLUMN] - = mSyncLookback; - hash[CONTENT_SYNC_INTERVAL_COLUMN] - = mSyncInterval; - hash[CONTENT_SYNC_TIME_COLUMN] - = mSyncTime; - hash[CONTENT_FLAG_VISIBLE_COLUMN] - = mFlagVisible; - hash[CONTENT_FLAGS_COLUMN] - = mFlags; - hash[CONTENT_VISIBLE_LIMIT_COLUMN] - = mVisibleLimit; - hash[CONTENT_SYNC_STATUS_COLUMN] - = mSyncStatus; - hash[CONTENT_PARENT_KEY_COLUMN] - = mParentKey; - hash[CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN] - = mLastSeenMessageKey; - return hash; - } - } - public interface HostAuthColumns { public static final String ID = "_id"; // The protocol (e.g. "imap", "pop3", "eas", "smtp" diff --git a/emailcommon/src/com/android/emailcommon/provider/Mailbox.java b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java new file mode 100644 index 000000000..32a9148ee --- /dev/null +++ b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java @@ -0,0 +1,473 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package com.android.emailcommon.provider; + +import com.android.emailcommon.Logging; +import com.android.emailcommon.provider.EmailContent.MailboxColumns; +import com.android.emailcommon.provider.EmailContent.SyncColumns; +import com.android.emailcommon.utility.Utility; + +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import java.security.InvalidParameterException; + +public class Mailbox extends EmailContent implements SyncColumns, MailboxColumns { + public static final String TABLE_NAME = "Mailbox"; + @SuppressWarnings("hiding") + public static final Uri CONTENT_URI = Uri.parse(EmailContent.CONTENT_URI + "/mailbox"); + public static final Uri ADD_TO_FIELD_URI = + Uri.parse(EmailContent.CONTENT_URI + "/mailboxIdAddToField"); + + public String mDisplayName; + public String mServerId; + public String mParentServerId; + public long mParentKey; + public long mAccountKey; + public int mType; + public int mDelimiter; + public String mSyncKey; + public int mSyncLookback; + public int mSyncInterval; + public long mSyncTime; + public boolean mFlagVisible = true; + public int mFlags; + public int mVisibleLimit; + public String mSyncStatus; + public long mLastSeenMessageKey; + + public static final int CONTENT_ID_COLUMN = 0; + public static final int CONTENT_DISPLAY_NAME_COLUMN = 1; + public static final int CONTENT_SERVER_ID_COLUMN = 2; + public static final int CONTENT_PARENT_SERVER_ID_COLUMN = 3; + public static final int CONTENT_ACCOUNT_KEY_COLUMN = 4; + public static final int CONTENT_TYPE_COLUMN = 5; + public static final int CONTENT_DELIMITER_COLUMN = 6; + public static final int CONTENT_SYNC_KEY_COLUMN = 7; + public static final int CONTENT_SYNC_LOOKBACK_COLUMN = 8; + public static final int CONTENT_SYNC_INTERVAL_COLUMN = 9; + public static final int CONTENT_SYNC_TIME_COLUMN = 10; + public static final int CONTENT_FLAG_VISIBLE_COLUMN = 11; + public static final int CONTENT_FLAGS_COLUMN = 12; + public static final int CONTENT_VISIBLE_LIMIT_COLUMN = 13; + public static final int CONTENT_SYNC_STATUS_COLUMN = 14; + public static final int CONTENT_PARENT_KEY_COLUMN = 15; + public static final int CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN = 16; + + /** + * NOTE: If fields are added or removed, the method {@link #getHashes()} + * MUST be updated. + */ + public static final String[] CONTENT_PROJECTION = new String[] { + RECORD_ID, MailboxColumns.DISPLAY_NAME, MailboxColumns.SERVER_ID, + MailboxColumns.PARENT_SERVER_ID, MailboxColumns.ACCOUNT_KEY, MailboxColumns.TYPE, + MailboxColumns.DELIMITER, MailboxColumns.SYNC_KEY, MailboxColumns.SYNC_LOOKBACK, + MailboxColumns.SYNC_INTERVAL, MailboxColumns.SYNC_TIME, + MailboxColumns.FLAG_VISIBLE, MailboxColumns.FLAGS, MailboxColumns.VISIBLE_LIMIT, + MailboxColumns.SYNC_STATUS, MailboxColumns.PARENT_KEY, + MailboxColumns.LAST_SEEN_MESSAGE_KEY, + }; + + private static final String ACCOUNT_AND_MAILBOX_TYPE_SELECTION = + MailboxColumns.ACCOUNT_KEY + " =? AND " + + MailboxColumns.TYPE + " =?"; + private static final String MAILBOX_TYPE_SELECTION = + MailboxColumns.TYPE + " =?"; + /** Selection by server pathname for a given account */ + private static final String PATH_AND_ACCOUNT_SELECTION = + MailboxColumns.SERVER_ID + "=? and " + MailboxColumns.ACCOUNT_KEY + "=?"; + + private static final String[] MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION = new String [] { + "sum(" + MailboxColumns.UNREAD_COUNT + ")" + }; + private static final int UNREAD_COUNT_COUNT_COLUMN = 0; + private static final String[] MAILBOX_SUM_OF_MESSAGE_COUNT_PROJECTION = new String [] { + "sum(" + MailboxColumns.MESSAGE_COUNT + ")" + }; + private static final int MESSAGE_COUNT_COUNT_COLUMN = 0; + + private static final String[] MAILBOX_TYPE_PROJECTION = new String [] { + MailboxColumns.TYPE + }; + private static final int MAILBOX_TYPE_TYPE_COLUMN = 0; + + private static final String[] MAILBOX_DISPLAY_NAME_PROJECTION = new String [] { + MailboxColumns.DISPLAY_NAME + }; + private static final int MAILBOX_DISPLAY_NAME_COLUMN = 0; + + public static final long NO_MAILBOX = -1; + + // Sentinel values for the mSyncInterval field of both Mailbox records + public static final int CHECK_INTERVAL_NEVER = -1; + public static final int CHECK_INTERVAL_PUSH = -2; + // The following two sentinel values are used by EAS + // Ping indicates that the EAS mailbox is synced based on a "ping" from the server + public static final int CHECK_INTERVAL_PING = -3; + // Push-Hold indicates an EAS push or ping Mailbox shouldn't sync just yet + public static final int CHECK_INTERVAL_PUSH_HOLD = -4; + + // Sentinels for PARENT_KEY + public static final long PARENT_KEY_NONE = -1L; + public static final long PARENT_KEY_UNINITIALIZED = 0L; + + private static final String WHERE_TYPE_AND_ACCOUNT_KEY = + MailboxColumns.TYPE + "=? and " + MailboxColumns.ACCOUNT_KEY + "=?"; + + public static final Integer[] INVALID_DROP_TARGETS = new Integer[] {Mailbox.TYPE_DRAFTS, + Mailbox.TYPE_OUTBOX, Mailbox.TYPE_SENT}; + + public static final String USER_VISIBLE_MAILBOX_SELECTION = + MailboxColumns.TYPE + "<" + Mailbox.TYPE_NOT_EMAIL + + " AND " + MailboxColumns.FLAG_VISIBLE + "=1"; + + // Types of mailboxes. The list is ordered to match a typical UI presentation, e.g. + // placing the inbox at the top. + // Arrays of "special_mailbox_display_names" and "special_mailbox_icons" are depends on + // types Id of mailboxes. + /** No type specified */ + public static final int TYPE_NONE = -1; + /** The "main" mailbox for the account, almost always referred to as "Inbox" */ + public static final int TYPE_INBOX = 0; + // Types of mailboxes + /** Generic mailbox that holds mail */ + public static final int TYPE_MAIL = 1; + /** Parent-only mailbox; does not hold any mail */ + public static final int TYPE_PARENT = 2; + /** Drafts mailbox */ + public static final int TYPE_DRAFTS = 3; + /** Local mailbox associated with the account's outgoing mail */ + public static final int TYPE_OUTBOX = 4; + /** Sent mail; mail that was sent from the account */ + public static final int TYPE_SENT = 5; + /** Deleted mail */ + public static final int TYPE_TRASH = 6; + /** Junk mail */ + public static final int TYPE_JUNK = 7; + /** Search results */ + public static final int TYPE_SEARCH = 8; + + // Types after this are used for non-mail mailboxes (as in EAS) + public static final int TYPE_NOT_EMAIL = 0x40; + public static final int TYPE_CALENDAR = 0x41; + public static final int TYPE_CONTACTS = 0x42; + public static final int TYPE_TASKS = 0x43; + public static final int TYPE_EAS_ACCOUNT_MAILBOX = 0x44; + public static final int TYPE_UNKNOWN = 0x45; + + public static final int TYPE_NOT_SYNCABLE = 0x100; + // A mailbox that holds Messages that are attachments + public static final int TYPE_ATTACHMENT = 0x101; + + // Bit field flags; each is defined below + // Warning: Do not read these flags until POP/IMAP/EAS all populate them + /** No flags set */ + public static final int FLAG_NONE = 0; + /** Has children in the mailbox hierarchy */ + public static final int FLAG_HAS_CHILDREN = 1<<0; + /** Children are visible in the UI */ + public static final int FLAG_CHILDREN_VISIBLE = 1<<1; + /** cannot receive "pushed" mail */ + public static final int FLAG_CANT_PUSH = 1<<2; + /** can hold emails (i.e. some parent mailboxes cannot themselves contain mail) */ + public static final int FLAG_HOLDS_MAIL = 1<<3; + /** can be used as a target for moving messages within the account */ + public static final int FLAG_ACCEPTS_MOVED_MAIL = 1<<4; + /** can be used as a target for appending messages */ + public static final int FLAG_ACCEPTS_APPENDED_MAIL = 1<<5; + + // Magic mailbox ID's + // NOTE: This is a quick solution for merged mailboxes. I would rather implement this + // with a more generic way of packaging and sharing queries between activities + public static final long QUERY_ALL_INBOXES = -2; + public static final long QUERY_ALL_UNREAD = -3; + public static final long QUERY_ALL_FAVORITES = -4; + public static final long QUERY_ALL_DRAFTS = -5; + public static final long QUERY_ALL_OUTBOX = -6; + + public Mailbox() { + mBaseUri = CONTENT_URI; + } + + /** + * Restore a Mailbox from the database, given its unique id + * @param context + * @param id + * @return the instantiated Mailbox + */ + public static Mailbox restoreMailboxWithId(Context context, long id) { + return EmailContent.restoreContentWithId(context, Mailbox.class, + Mailbox.CONTENT_URI, Mailbox.CONTENT_PROJECTION, id); + } + + /** + * Returns a Mailbox from the database, given its pathname and account id. All mailbox + * paths for a particular account must be unique. Paths are stored in the column + * {@link MailboxColumns#SERVER_ID} for want of yet another column in the table. + * @param context + * @param accountId the ID of the account + * @param path the fully qualified, remote pathname + */ + public static Mailbox restoreMailboxForPath(Context context, long accountId, String path) { + Cursor c = context.getContentResolver().query( + Mailbox.CONTENT_URI, + Mailbox.CONTENT_PROJECTION, + Mailbox.PATH_AND_ACCOUNT_SELECTION, + new String[] { path, Long.toString(accountId) }, + null); + if (c == null) throw new ProviderUnavailableException(); + try { + Mailbox mailbox = null; + if (c.moveToFirst()) { + mailbox = getContent(c, Mailbox.class); + if (c.moveToNext()) { + Log.w(Logging.LOG_TAG, "Multiple mailboxes named \"" + path + "\""); + } + } else { + Log.i(Logging.LOG_TAG, "Could not find mailbox at \"" + path + "\""); + } + return mailbox; + } finally { + c.close(); + } + } + + @Override + public void restore(Cursor cursor) { + mBaseUri = CONTENT_URI; + mId = cursor.getLong(CONTENT_ID_COLUMN); + mDisplayName = cursor.getString(CONTENT_DISPLAY_NAME_COLUMN); + mServerId = cursor.getString(CONTENT_SERVER_ID_COLUMN); + mParentServerId = cursor.getString(CONTENT_PARENT_SERVER_ID_COLUMN); + mParentKey = cursor.getLong(CONTENT_PARENT_KEY_COLUMN); + mAccountKey = cursor.getLong(CONTENT_ACCOUNT_KEY_COLUMN); + mType = cursor.getInt(CONTENT_TYPE_COLUMN); + mDelimiter = cursor.getInt(CONTENT_DELIMITER_COLUMN); + mSyncKey = cursor.getString(CONTENT_SYNC_KEY_COLUMN); + mSyncLookback = cursor.getInt(CONTENT_SYNC_LOOKBACK_COLUMN); + mSyncInterval = cursor.getInt(CONTENT_SYNC_INTERVAL_COLUMN); + mSyncTime = cursor.getLong(CONTENT_SYNC_TIME_COLUMN); + mFlagVisible = cursor.getInt(CONTENT_FLAG_VISIBLE_COLUMN) == 1; + mFlags = cursor.getInt(CONTENT_FLAGS_COLUMN); + mVisibleLimit = cursor.getInt(CONTENT_VISIBLE_LIMIT_COLUMN); + mSyncStatus = cursor.getString(CONTENT_SYNC_STATUS_COLUMN); + mLastSeenMessageKey = cursor.getLong(CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN); + } + + @Override + public ContentValues toContentValues() { + ContentValues values = new ContentValues(); + values.put(MailboxColumns.DISPLAY_NAME, mDisplayName); + values.put(MailboxColumns.SERVER_ID, mServerId); + values.put(MailboxColumns.PARENT_SERVER_ID, mParentServerId); + values.put(MailboxColumns.PARENT_KEY, mParentKey); + values.put(MailboxColumns.ACCOUNT_KEY, mAccountKey); + values.put(MailboxColumns.TYPE, mType); + values.put(MailboxColumns.DELIMITER, mDelimiter); + values.put(MailboxColumns.SYNC_KEY, mSyncKey); + values.put(MailboxColumns.SYNC_LOOKBACK, mSyncLookback); + values.put(MailboxColumns.SYNC_INTERVAL, mSyncInterval); + values.put(MailboxColumns.SYNC_TIME, mSyncTime); + values.put(MailboxColumns.FLAG_VISIBLE, mFlagVisible); + values.put(MailboxColumns.FLAGS, mFlags); + values.put(MailboxColumns.VISIBLE_LIMIT, mVisibleLimit); + values.put(MailboxColumns.SYNC_STATUS, mSyncStatus); + values.put(MailboxColumns.LAST_SEEN_MESSAGE_KEY, mLastSeenMessageKey); + return values; + } + + /** + * Convenience method to return the id of a given type of Mailbox for a given Account + * @param context the caller's context, used to get a ContentResolver + * @param accountId the id of the account to be queried + * @param type the mailbox type, as defined above + * @return the id of the mailbox, or -1 if not found + */ + public static long findMailboxOfType(Context context, long accountId, int type) { + String[] bindArguments = new String[] {Long.toString(type), Long.toString(accountId)}; + return Utility.getFirstRowLong(context, Mailbox.CONTENT_URI, + ID_PROJECTION, WHERE_TYPE_AND_ACCOUNT_KEY, bindArguments, null, + ID_PROJECTION_COLUMN, NO_MAILBOX); + } + + /** + * Convenience method that returns the mailbox found using the method above + */ + public static Mailbox restoreMailboxOfType(Context context, long accountId, int type) { + long mailboxId = findMailboxOfType(context, accountId, type); + if (mailboxId != Mailbox.NO_MAILBOX) { + return Mailbox.restoreMailboxWithId(context, mailboxId); + } + return null; + } + + public static int getUnreadCountByAccountAndMailboxType(Context context, long accountId, + int type) { + return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, + MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION, + ACCOUNT_AND_MAILBOX_TYPE_SELECTION, + new String[] { String.valueOf(accountId), String.valueOf(type) }, + null, UNREAD_COUNT_COUNT_COLUMN, 0); + } + + public static int getUnreadCountByMailboxType(Context context, int type) { + return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, + MAILBOX_SUM_OF_UNREAD_COUNT_PROJECTION, + MAILBOX_TYPE_SELECTION, + new String[] { String.valueOf(type) }, null, UNREAD_COUNT_COUNT_COLUMN, 0); + } + + public static int getMessageCountByMailboxType(Context context, int type) { + return Utility.getFirstRowInt(context, Mailbox.CONTENT_URI, + MAILBOX_SUM_OF_MESSAGE_COUNT_PROJECTION, + MAILBOX_TYPE_SELECTION, + new String[] { String.valueOf(type) }, null, MESSAGE_COUNT_COUNT_COLUMN, 0); + } + + /** + * Return the mailbox for a message with a given id + * @param context the caller's context + * @param messageId the id of the message + * @return the mailbox, or null if the mailbox doesn't exist + */ + public static Mailbox getMailboxForMessageId(Context context, long messageId) { + long mailboxId = Message.getKeyColumnLong(context, messageId, + MessageColumns.MAILBOX_KEY); + if (mailboxId != -1) { + return Mailbox.restoreMailboxWithId(context, mailboxId); + } + return null; + } + + /** + * @return mailbox type, or -1 if mailbox not found. + */ + public static int getMailboxType(Context context, long mailboxId) { + Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); + return Utility.getFirstRowInt(context, url, MAILBOX_TYPE_PROJECTION, + null, null, null, MAILBOX_TYPE_TYPE_COLUMN, -1); + } + + /** + * @return mailbox display name, or null if mailbox not found. + */ + public static String getDisplayName(Context context, long mailboxId) { + Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); + return Utility.getFirstRowString(context, url, MAILBOX_DISPLAY_NAME_PROJECTION, + null, null, null, MAILBOX_DISPLAY_NAME_COLUMN); + } + + /** + * @param mailboxId ID of a mailbox. This method accepts magic mailbox IDs, such as + * {@link #QUERY_ALL_INBOXES}. (They're all non-refreshable.) + * @return true if a mailbox is refreshable. + */ + public static boolean isRefreshable(Context context, long mailboxId) { + if (mailboxId < 0) { + return false; // magic mailboxes + } + switch (getMailboxType(context, mailboxId)) { + case -1: // not found + case TYPE_DRAFTS: + case TYPE_OUTBOX: + return false; + } + return true; + } + + /** + * @param mailboxId ID of a mailbox. This method DOES NOT accept magic mailbox IDs, such as + * {@link #QUERY_ALL_INBOXES} (because only the actual mailbox ID matters here. e.g. + * {@link #QUERY_ALL_FAVORITES} can contain ANY kind of messages), so don't pass a negative + * value. + * @return true if messages in a mailbox can be moved to another mailbox. + * This method only checks the mailbox information. It doesn't check its account/protocol, + * so it may return true even for POP3 mailbox. + */ + public static boolean canMoveFrom(Context context, long mailboxId) { + if (mailboxId < 0) { + throw new InvalidParameterException(); + } + Uri url = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); + int type = Utility.getFirstRowInt(context, url, MAILBOX_TYPE_PROJECTION, + null, null, null, MAILBOX_TYPE_TYPE_COLUMN); + switch (type) { + case TYPE_INBOX: + case TYPE_MAIL: + case TYPE_TRASH: + case TYPE_JUNK: + return true; + } + return false; // TYPE_DRAFTS, TYPE_OUTBOX, TYPE_SENT, etc + } + + /** + * @return true if messages in a mailbox of a type can be replied/forwarded. + */ + public static boolean isMailboxTypeReplyAndForwardable(int type) { + return (type != TYPE_TRASH) && (type != TYPE_DRAFTS); + } + + /** + * Returns a set of hashes that can identify this mailbox. These can be used to + * determine if any of the fields have been modified. + */ + public Object[] getHashes() { + Object[] hash = new Object[CONTENT_PROJECTION.length]; + + hash[CONTENT_ID_COLUMN] + = mId; + hash[CONTENT_DISPLAY_NAME_COLUMN] + = mDisplayName; + hash[CONTENT_SERVER_ID_COLUMN] + = mServerId; + hash[CONTENT_PARENT_SERVER_ID_COLUMN] + = mParentServerId; + hash[CONTENT_ACCOUNT_KEY_COLUMN] + = mAccountKey; + hash[CONTENT_TYPE_COLUMN] + = mType; + hash[CONTENT_DELIMITER_COLUMN] + = mDelimiter; + hash[CONTENT_SYNC_KEY_COLUMN] + = mSyncKey; + hash[CONTENT_SYNC_LOOKBACK_COLUMN] + = mSyncLookback; + hash[CONTENT_SYNC_INTERVAL_COLUMN] + = mSyncInterval; + hash[CONTENT_SYNC_TIME_COLUMN] + = mSyncTime; + hash[CONTENT_FLAG_VISIBLE_COLUMN] + = mFlagVisible; + hash[CONTENT_FLAGS_COLUMN] + = mFlags; + hash[CONTENT_VISIBLE_LIMIT_COLUMN] + = mVisibleLimit; + hash[CONTENT_SYNC_STATUS_COLUMN] + = mSyncStatus; + hash[CONTENT_PARENT_KEY_COLUMN] + = mParentKey; + hash[CONTENT_LAST_SEEN_MESSAGE_KEY_COLUMN] + = mLastSeenMessageKey; + return hash; + } +} \ No newline at end of file diff --git a/emailcommon/src/com/android/emailcommon/utility/Utility.java b/emailcommon/src/com/android/emailcommon/utility/Utility.java index 46bc6df64..31955d277 100644 --- a/emailcommon/src/com/android/emailcommon/utility/Utility.java +++ b/emailcommon/src/com/android/emailcommon/utility/Utility.java @@ -24,10 +24,10 @@ import com.android.emailcommon.provider.EmailContent.Attachment; import com.android.emailcommon.provider.EmailContent.AttachmentColumns; import com.android.emailcommon.provider.EmailContent.HostAuth; import com.android.emailcommon.provider.EmailContent.HostAuthColumns; -import com.android.emailcommon.provider.EmailContent.Mailbox; 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.provider.Mailbox; import com.android.emailcommon.provider.ProviderUnavailableException; import android.app.Activity; diff --git a/src/com/android/email/Controller.java b/src/com/android/email/Controller.java index c11c8bc3e..1b6174f23 100644 --- a/src/com/android/email/Controller.java +++ b/src/com/android/email/Controller.java @@ -28,10 +28,10 @@ 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.Mailbox; 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.provider.Mailbox; import com.android.emailcommon.service.EmailServiceStatus; import com.android.emailcommon.service.IEmailService; import com.android.emailcommon.service.IEmailServiceCallback; @@ -406,7 +406,7 @@ public class Controller { Account account = EmailContent.Account.restoreAccountWithId(mProviderContext, accountId); Mailbox mailbox = - EmailContent.Mailbox.restoreMailboxWithId(mProviderContext, mailboxId); + Mailbox.restoreMailboxWithId(mProviderContext, mailboxId); if (account == null || mailbox == null) { return; } diff --git a/src/com/android/email/FolderProperties.java b/src/com/android/email/FolderProperties.java index e69a2dd31..7fb4264cd 100644 --- a/src/com/android/email/FolderProperties.java +++ b/src/com/android/email/FolderProperties.java @@ -16,7 +16,7 @@ package com.android.email; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.content.res.TypedArray; diff --git a/src/com/android/email/LegacyConversions.java b/src/com/android/email/LegacyConversions.java index 8c9299c24..85bacac4a 100644 --- a/src/com/android/email/LegacyConversions.java +++ b/src/com/android/email/LegacyConversions.java @@ -32,7 +32,7 @@ import com.android.emailcommon.mail.Part; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Attachment; import com.android.emailcommon.provider.EmailContent.AttachmentColumns; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import org.apache.commons.io.IOUtils; @@ -458,13 +458,13 @@ public class LegacyConversions { Mailbox.TYPE_JUNK); } if (mailboxName == null || mailboxName.length() == 0) { - return EmailContent.Mailbox.TYPE_MAIL; + return Mailbox.TYPE_MAIL; } String lowerCaseName = mailboxName.toLowerCase(); Integer type = sServerMailboxNames.get(lowerCaseName); if (type != null) { return type; } - return EmailContent.Mailbox.TYPE_MAIL; + return Mailbox.TYPE_MAIL; } } diff --git a/src/com/android/email/MessagingController.java b/src/com/android/email/MessagingController.java index 08153b6bd..027e8f15c 100644 --- a/src/com/android/email/MessagingController.java +++ b/src/com/android/email/MessagingController.java @@ -38,10 +38,10 @@ 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.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.MessageColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.ConversionUtilities; import com.android.emailcommon.utility.Utility; @@ -247,7 +247,7 @@ public class MessagingController implements Runnable { // Step 2: Get local mailboxes localFolderCursor = mContext.getContentResolver().query( - EmailContent.Mailbox.CONTENT_URI, + Mailbox.CONTENT_URI, MAILBOX_PROJECTION, EmailContent.MailboxColumns.ACCOUNT_KEY + "=?", new String[] { String.valueOf(account.mId) }, @@ -302,11 +302,11 @@ public class MessagingController implements Runnable { * @param listener */ public void synchronizeMailbox(final EmailContent.Account account, - final EmailContent.Mailbox folder, MessagingListener listener) { + final Mailbox folder, MessagingListener listener) { /* * We don't ever sync the Outbox. */ - if (folder.mType == EmailContent.Mailbox.TYPE_OUTBOX) { + if (folder.mType == Mailbox.TYPE_OUTBOX) { return; } mListeners.synchronizeMailboxStarted(account.mId, folder.mId); @@ -325,7 +325,7 @@ public class MessagingController implements Runnable { * @param folder */ private void synchronizeMailboxSynchronous(final EmailContent.Account account, - final EmailContent.Mailbox folder) { + final Mailbox folder) { mListeners.synchronizeMailboxStarted(account.mId, folder.mId); if ((folder.mFlags & Mailbox.FLAG_HOLDS_MAIL) == 0) { // We don't hold messages, so, nothing to synchronize @@ -408,7 +408,7 @@ public class MessagingController implements Runnable { * @throws MessagingException */ private SyncResults synchronizeMailboxGeneric( - final EmailContent.Account account, final EmailContent.Mailbox folder) + final EmailContent.Account account, final Mailbox folder) throws MessagingException { /* @@ -764,7 +764,7 @@ public class MessagingController implements Runnable { * EmailContent.Message.LOADED) */ public void copyOneMessageToProvider(Message message, EmailContent.Account account, - EmailContent.Mailbox folder, int loadStatus) { + Mailbox folder, int loadStatus) { EmailContent.Message localMessage = null; Cursor c = null; try { @@ -1637,8 +1637,8 @@ public class MessagingController implements Runnable { // TODO combine with common code in loadAttachment EmailContent.Account account = EmailContent.Account.restoreAccountWithId(mContext, message.mAccountKey); - EmailContent.Mailbox mailbox = - EmailContent.Mailbox.restoreMailboxWithId(mContext, message.mMailboxKey); + Mailbox mailbox = + Mailbox.restoreMailboxWithId(mContext, message.mMailboxKey); if (account == null || mailbox == null) { mListeners.loadMessageForViewFailed(messageId, "null account or mailbox"); return; @@ -1720,8 +1720,8 @@ public class MessagingController implements Runnable { // TODO all of these could be narrower projections EmailContent.Account account = EmailContent.Account.restoreAccountWithId(mContext, accountId); - EmailContent.Mailbox mailbox = - EmailContent.Mailbox.restoreMailboxWithId(mContext, mailboxId); + Mailbox mailbox = + Mailbox.restoreMailboxWithId(mContext, mailboxId); EmailContent.Message message = EmailContent.Message.restoreMessageWithId(mContext, messageId); @@ -1933,8 +1933,8 @@ public class MessagingController implements Runnable { // TODO we already know this in Controller, can we pass it in? inboxId = Mailbox.findMailboxOfType(mContext, accountId, Mailbox.TYPE_INBOX); if (inboxId != Mailbox.NO_MAILBOX) { - EmailContent.Mailbox mailbox = - EmailContent.Mailbox.restoreMailboxWithId(mContext, inboxId); + Mailbox mailbox = + Mailbox.restoreMailboxWithId(mContext, inboxId); if (mailbox != null) { synchronizeMailboxSynchronous(account, mailbox); } diff --git a/src/com/android/email/NotificationController.java b/src/com/android/email/NotificationController.java index 5d6a8bc4e..3827fb110 100644 --- a/src/com/android/email/NotificationController.java +++ b/src/com/android/email/NotificationController.java @@ -25,10 +25,10 @@ import com.android.emailcommon.mail.Address; 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.Mailbox; 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.provider.Mailbox; import com.android.emailcommon.utility.Utility; import com.google.common.annotations.VisibleForTesting; diff --git a/src/com/android/email/activity/AccountSelectorAdapter.java b/src/com/android/email/activity/AccountSelectorAdapter.java index d09c6ae8b..36d7e2821 100644 --- a/src/com/android/email/activity/AccountSelectorAdapter.java +++ b/src/com/android/email/activity/AccountSelectorAdapter.java @@ -21,7 +21,7 @@ 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.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.content.Context; diff --git a/src/com/android/email/activity/ActivityHelper.java b/src/com/android/email/activity/ActivityHelper.java index 175c87974..18f245a44 100644 --- a/src/com/android/email/activity/ActivityHelper.java +++ b/src/com/android/email/activity/ActivityHelper.java @@ -19,7 +19,7 @@ package com.android.email.activity; import com.android.email.Controller; import com.android.email.Email; import com.android.email.R; -import com.android.emailcommon.provider.EmailContent.Mailbox; +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/EmailActivity.java b/src/com/android/email/activity/EmailActivity.java index 18e1dc83d..624beb201 100644 --- a/src/com/android/email/activity/EmailActivity.java +++ b/src/com/android/email/activity/EmailActivity.java @@ -24,9 +24,9 @@ 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.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.Message; +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/MailboxFinder.java b/src/com/android/email/activity/MailboxFinder.java index bbcc731d4..07d41a3dd 100644 --- a/src/com/android/email/activity/MailboxFinder.java +++ b/src/com/android/email/activity/MailboxFinder.java @@ -22,7 +22,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.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.content.Context; diff --git a/src/com/android/email/activity/MailboxFragmentAdapter.java b/src/com/android/email/activity/MailboxFragmentAdapter.java index e549de7ff..af8acb753 100644 --- a/src/com/android/email/activity/MailboxFragmentAdapter.java +++ b/src/com/android/email/activity/MailboxFragmentAdapter.java @@ -25,9 +25,9 @@ import com.android.emailcommon.Logging; 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.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.content.Context; @@ -220,7 +220,7 @@ import android.widget.TextView; private final long mParentKey; MailboxFragmentLoader(Context context, long accountId, long parentKey) { - super(context, EmailContent.Mailbox.CONTENT_URI, + super(context, Mailbox.CONTENT_URI, (parentKey != Mailbox.PARENT_KEY_NONE) ? MailboxesAdapter.SUBMAILBOX_PROJECTION : MailboxesAdapter.PROJECTION, diff --git a/src/com/android/email/activity/MailboxListFragment.java b/src/com/android/email/activity/MailboxListFragment.java index 9735ad858..6049d3561 100644 --- a/src/com/android/email/activity/MailboxListFragment.java +++ b/src/com/android/email/activity/MailboxListFragment.java @@ -23,8 +23,8 @@ import com.android.email.RefreshManager; import com.android.email.provider.EmailProvider; import com.android.email.service.MailService; import com.android.emailcommon.Logging; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +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 0f59d55aa..2f9599a7e 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.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.content.res.Resources; diff --git a/src/com/android/email/activity/MailboxMoveToAdapter.java b/src/com/android/email/activity/MailboxMoveToAdapter.java index d4122acb0..e4a09ffb2 100644 --- a/src/com/android/email/activity/MailboxMoveToAdapter.java +++ b/src/com/android/email/activity/MailboxMoveToAdapter.java @@ -21,11 +21,10 @@ import com.android.email.FolderProperties; import com.android.email.data.ThrottlingCursorLoader; 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.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.content.Context; @@ -135,7 +134,7 @@ class MailboxMoveToAdapter extends CursorAdapter { private static class MailboxMoveToLoader extends ThrottlingCursorLoader { private final long mAccountId; public MailboxMoveToLoader(Context context, long accountId) { - super(context, EmailContent.Mailbox.CONTENT_URI, + super(context, Mailbox.CONTENT_URI, null, MOVE_TO_SELECTION, new String[] { String.valueOf(accountId) }, null); mAccountId = accountId; diff --git a/src/com/android/email/activity/MailboxesAdapter.java b/src/com/android/email/activity/MailboxesAdapter.java index eab72b875..17ab79793 100644 --- a/src/com/android/email/activity/MailboxesAdapter.java +++ b/src/com/android/email/activity/MailboxesAdapter.java @@ -18,8 +18,8 @@ package com.android.email.activity; import com.android.email.FolderProperties; import com.android.email.ResourceHelper; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.database.Cursor; diff --git a/src/com/android/email/activity/MessageCompose.java b/src/com/android/email/activity/MessageCompose.java index 4ff3d9dde..5f3c84c95 100644 --- a/src/com/android/email/activity/MessageCompose.java +++ b/src/com/android/email/activity/MessageCompose.java @@ -25,13 +25,13 @@ import com.android.email.mail.internet.EmailHtmlUtil; import com.android.emailcommon.Logging; import com.android.emailcommon.internet.MimeUtility; import com.android.emailcommon.mail.Address; -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.BodyColumns; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.EmailAsyncTask; import com.android.emailcommon.utility.Utility; @@ -1167,7 +1167,7 @@ public class MessageCompose extends Activity implements OnClickListener, OnFocus Body.updateBodyWithMessageId(MessageCompose.this, mDraft.mId, values); } else { // mDraft.mId is set upon return of saveToMailbox() - mController.saveToMailbox(mDraft, EmailContent.Mailbox.TYPE_DRAFTS); + mController.saveToMailbox(mDraft, Mailbox.TYPE_DRAFTS); } // For any unloaded attachment, set the flag saying we need it loaded boolean hasUnloadedAttachments = false; diff --git a/src/com/android/email/activity/MessageListFragment.java b/src/com/android/email/activity/MessageListFragment.java index ff172e4b8..4c6c816c7 100644 --- a/src/com/android/email/activity/MessageListFragment.java +++ b/src/com/android/email/activity/MessageListFragment.java @@ -24,10 +24,9 @@ import com.android.email.RefreshManager; import com.android.email.data.MailboxAccountLoader; import com.android.email.provider.EmailProvider; import com.android.emailcommon.Logging; -import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.EmailAsyncTask; import com.android.emailcommon.utility.Utility; import com.google.common.annotations.VisibleForTesting; @@ -698,9 +697,9 @@ public class MessageListFragment extends ListFragment // we don't have mMailbox for combined mailbox. // ("All Starred" can contain any kind of messages.) switch (Mailbox.getMailboxType(mActivity, mMessageMailboxId)) { - case EmailContent.Mailbox.TYPE_DRAFTS: + case Mailbox.TYPE_DRAFTS: return Callback.TYPE_DRAFT; - case EmailContent.Mailbox.TYPE_TRASH: + case Mailbox.TYPE_TRASH: return Callback.TYPE_TRASH; default: return Callback.TYPE_REGULAR; diff --git a/src/com/android/email/activity/MessageViewFragment.java b/src/com/android/email/activity/MessageViewFragment.java index 065a05736..afd9cf777 100644 --- a/src/com/android/email/activity/MessageViewFragment.java +++ b/src/com/android/email/activity/MessageViewFragment.java @@ -21,8 +21,8 @@ import com.android.email.R; import com.android.emailcommon.Logging; import com.android.emailcommon.mail.MeetingInfo; import com.android.emailcommon.mail.PackedString; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceConstants; import com.android.emailcommon.utility.Utility; diff --git a/src/com/android/email/activity/MessageViewFragmentBase.java b/src/com/android/email/activity/MessageViewFragmentBase.java index 38dcd98ec..bf0b43560 100644 --- a/src/com/android/email/activity/MessageViewFragmentBase.java +++ b/src/com/android/email/activity/MessageViewFragmentBase.java @@ -30,8 +30,8 @@ import com.android.emailcommon.mail.Address; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.EmailContent.Attachment; import com.android.emailcommon.provider.EmailContent.Body; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.EmailAsyncTask; import com.android.emailcommon.utility.Utility; diff --git a/src/com/android/email/activity/MessagesAdapter.java b/src/com/android/email/activity/MessagesAdapter.java index 9b91626e7..cf5af6f16 100644 --- a/src/com/android/email/activity/MessagesAdapter.java +++ b/src/com/android/email/activity/MessagesAdapter.java @@ -21,9 +21,9 @@ import com.android.email.ResourceHelper; import com.android.email.data.ThrottlingCursorLoader; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.EmailContent; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; diff --git a/src/com/android/email/activity/MoveMessageToDialog.java b/src/com/android/email/activity/MoveMessageToDialog.java index b9c70c50c..169dd36e2 100644 --- a/src/com/android/email/activity/MoveMessageToDialog.java +++ b/src/com/android/email/activity/MoveMessageToDialog.java @@ -20,8 +20,8 @@ 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.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.app.Activity; diff --git a/src/com/android/email/activity/UIControllerOnePane.java b/src/com/android/email/activity/UIControllerOnePane.java index ce1d768b1..3ecb3d045 100644 --- a/src/com/android/email/activity/UIControllerOnePane.java +++ b/src/com/android/email/activity/UIControllerOnePane.java @@ -19,7 +19,7 @@ package com.android.email.activity; import com.android.email.Email; import com.android.email.R; import com.android.emailcommon.Logging; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.app.FragmentManager; diff --git a/src/com/android/email/activity/UIControllerTwoPane.java b/src/com/android/email/activity/UIControllerTwoPane.java index 08045177f..76ad23ad3 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.RefreshManager; import com.android.email.activity.setup.AccountSecurity; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; +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/data/MailboxAccountLoader.java b/src/com/android/email/data/MailboxAccountLoader.java index 2d4599f36..208495d9f 100644 --- a/src/com/android/email/data/MailboxAccountLoader.java +++ b/src/com/android/email/data/MailboxAccountLoader.java @@ -18,7 +18,7 @@ package com.android.email.data; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.AsyncTaskLoader; import android.content.Context; diff --git a/src/com/android/email/mail/Store.java b/src/com/android/email/mail/Store.java index e84cdcafd..311ea4fca 100644 --- a/src/com/android/email/mail/Store.java +++ b/src/com/android/email/mail/Store.java @@ -23,7 +23,7 @@ import com.android.emailcommon.mail.Folder; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.google.common.annotations.VisibleForTesting; import org.xmlpull.v1.XmlPullParserException; diff --git a/src/com/android/email/mail/store/ImapFolder.java b/src/com/android/email/mail/store/ImapFolder.java index 8b984de38..9551589d9 100644 --- a/src/com/android/email/mail/store/ImapFolder.java +++ b/src/com/android/email/mail/store/ImapFolder.java @@ -47,7 +47,7 @@ import com.android.emailcommon.mail.Folder; import com.android.emailcommon.mail.Message; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.mail.Part; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import java.io.IOException; diff --git a/src/com/android/email/mail/store/ImapStore.java b/src/com/android/email/mail/store/ImapStore.java index d731085f2..adb0bd777 100644 --- a/src/com/android/email/mail/store/ImapStore.java +++ b/src/com/android/email/mail/store/ImapStore.java @@ -40,7 +40,7 @@ import com.android.emailcommon.mail.Message; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.utility.Utility; import com.beetstra.jutf7.CharsetProvider; diff --git a/src/com/android/email/mail/store/Pop3Store.java b/src/com/android/email/mail/store/Pop3Store.java index 8e9ed612a..48338716a 100644 --- a/src/com/android/email/mail/store/Pop3Store.java +++ b/src/com/android/email/mail/store/Pop3Store.java @@ -31,7 +31,7 @@ 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.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.utility.LoggingInputStream; import com.android.emailcommon.utility.Utility; diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index dc8caddb8..1d7764e20 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -30,12 +30,12 @@ import com.android.emailcommon.provider.EmailContent.Body; import com.android.emailcommon.provider.EmailContent.BodyColumns; import com.android.emailcommon.provider.EmailContent.HostAuth; import com.android.emailcommon.provider.EmailContent.HostAuthColumns; -import com.android.emailcommon.provider.EmailContent.Mailbox; 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.provider.EmailContent.PolicyColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.provider.Policy; import com.android.emailcommon.service.LegacyPolicySet; import com.google.common.annotations.VisibleForTesting; @@ -199,7 +199,7 @@ public class EmailProvider extends ContentProvider { // MESSAGE_BASE = 0x1000, etc.) private static final String[] TABLE_NAMES = { EmailContent.Account.TABLE_NAME, - EmailContent.Mailbox.TABLE_NAME, + Mailbox.TABLE_NAME, EmailContent.Message.TABLE_NAME, EmailContent.Attachment.TABLE_NAME, EmailContent.HostAuth.TABLE_NAME, diff --git a/src/com/android/email/service/MailService.java b/src/com/android/email/service/MailService.java index ff368f7aa..54b74d3a0 100644 --- a/src/com/android/email/service/MailService.java +++ b/src/com/android/email/service/MailService.java @@ -27,7 +27,7 @@ import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AccountReconciler; import com.android.emailcommon.utility.EmailAsyncTask; import com.google.common.annotations.VisibleForTesting; diff --git a/src/com/android/email/service/PopImapSyncAdapterService.java b/src/com/android/email/service/PopImapSyncAdapterService.java index ca83efa47..0ff871b02 100644 --- a/src/com/android/email/service/PopImapSyncAdapterService.java +++ b/src/com/android/email/service/PopImapSyncAdapterService.java @@ -18,7 +18,7 @@ package com.android.email.service; import com.android.email.Controller; import com.android.emailcommon.provider.EmailContent; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.accounts.Account; import android.accounts.OperationCanceledException; @@ -92,7 +92,7 @@ public class PopImapSyncAdapterService extends Service { if (c.moveToNext()) { // If we have one, find the inbox and start it syncing long accountId = c.getLong(EmailContent.Account.ID_PROJECTION_COLUMN); - long mailboxId = EmailContent.Mailbox.findMailboxOfType(context, accountId, + long mailboxId = Mailbox.findMailboxOfType(context, accountId, Mailbox.TYPE_INBOX); if (mailboxId > 0) { Log.d(TAG, "Starting manual sync for account " + emailAddress); diff --git a/src/com/android/email/widget/EmailWidget.java b/src/com/android/email/widget/EmailWidget.java index 874367bfd..18f028e1a 100644 --- a/src/com/android/email/widget/EmailWidget.java +++ b/src/com/android/email/widget/EmailWidget.java @@ -23,8 +23,8 @@ import com.android.email.activity.MessageCompose; import com.android.email.activity.UiUtilities; import com.android.email.activity.Welcome; import com.android.email.provider.WidgetProvider.WidgetService; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.EmailAsyncTask; import com.android.emailcommon.utility.Utility; diff --git a/tests/src/com/android/email/ControllerProviderOpsTests.java b/tests/src/com/android/email/ControllerProviderOpsTests.java index 007a37686..35b63b2b0 100644 --- a/tests/src/com/android/email/ControllerProviderOpsTests.java +++ b/tests/src/com/android/email/ControllerProviderOpsTests.java @@ -23,8 +23,8 @@ 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.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.net.Uri; @@ -202,13 +202,13 @@ public class ControllerProviderOpsTests extends ProviderTestCase2 Mailbox trashBox = ProviderTestUtils.setupMailbox("box2", account1Id, false, mProviderContext); - trashBox.mType = EmailContent.Mailbox.TYPE_TRASH; + trashBox.mType = Mailbox.TYPE_TRASH; trashBox.save(mProviderContext); long trashBoxId = trashBox.mId; Mailbox draftBox = ProviderTestUtils.setupMailbox("box3", account1Id, false, mProviderContext); - draftBox.mType = EmailContent.Mailbox.TYPE_DRAFTS; + draftBox.mType = Mailbox.TYPE_DRAFTS; draftBox.save(mProviderContext); long draftBoxId = draftBox.mId; @@ -289,9 +289,9 @@ public class ControllerProviderOpsTests extends ProviderTestCase2 // check the new mailbox and see if it looks right assertFalse(-1 == message1get.mMailboxKey); assertFalse(box1Id == message1get.mMailboxKey); - Mailbox mailbox2get = EmailContent.Mailbox.restoreMailboxWithId(mProviderContext, + Mailbox mailbox2get = Mailbox.restoreMailboxWithId(mProviderContext, message1get.mMailboxKey); - assertEquals(EmailContent.Mailbox.TYPE_TRASH, mailbox2get.mType); + assertEquals(Mailbox.TYPE_TRASH, mailbox2get.mType); } /** diff --git a/tests/src/com/android/email/NotificationControllerTest.java b/tests/src/com/android/email/NotificationControllerTest.java index e67c47001..e4a65ac18 100644 --- a/tests/src/com/android/email/NotificationControllerTest.java +++ b/tests/src/com/android/email/NotificationControllerTest.java @@ -18,8 +18,8 @@ package com.android.email; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import android.app.Notification; import android.content.Context; diff --git a/tests/src/com/android/email/SecurityPolicyTests.java b/tests/src/com/android/email/SecurityPolicyTests.java index 53247ef7e..7d13f316f 100644 --- a/tests/src/com/android/email/SecurityPolicyTests.java +++ b/tests/src/com/android/email/SecurityPolicyTests.java @@ -21,8 +21,8 @@ import com.android.email.provider.EmailProvider; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.provider.Policy; import com.android.emailcommon.service.LegacyPolicySet; diff --git a/tests/src/com/android/email/activity/MailboxFinderTest.java b/tests/src/com/android/email/activity/MailboxFinderTest.java index f7f6d32b3..b254c62f3 100644 --- a/tests/src/com/android/email/activity/MailboxFinderTest.java +++ b/tests/src/com/android/email/activity/MailboxFinderTest.java @@ -22,9 +22,8 @@ import com.android.email.Email; import com.android.email.TestUtils; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.mail.MessagingException; -import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.test.InstrumentationTestCase; @@ -107,7 +106,7 @@ public class MailboxFinderTest extends InstrumentationTestCase { * Create a mailbox and return the ID. */ private long createMailbox(long accountId, int mailboxType) { - EmailContent.Mailbox box = new EmailContent.Mailbox(); + Mailbox box = new Mailbox(); box.mServerId = box.mDisplayName = "mailbox"; box.mAccountKey = accountId; box.mType = mailboxType; diff --git a/tests/src/com/android/email/activity/MailboxesAdapterTest.java b/tests/src/com/android/email/activity/MailboxesAdapterTest.java index d5ddae7e3..6242a7dd9 100644 --- a/tests/src/com/android/email/activity/MailboxesAdapterTest.java +++ b/tests/src/com/android/email/activity/MailboxesAdapterTest.java @@ -20,8 +20,8 @@ import com.android.email.provider.EmailProvider; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.database.Cursor; diff --git a/tests/src/com/android/email/data/MailboxAccountLoaderTestCase.java b/tests/src/com/android/email/data/MailboxAccountLoaderTestCase.java index 3650c7fbb..402c87e88 100644 --- a/tests/src/com/android/email/data/MailboxAccountLoaderTestCase.java +++ b/tests/src/com/android/email/data/MailboxAccountLoaderTestCase.java @@ -19,7 +19,7 @@ package com.android.email.data; import com.android.email.DBTestHelper; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.test.LoaderTestCase; diff --git a/tests/src/com/android/email/mail/StoreTests.java b/tests/src/com/android/email/mail/StoreTests.java index b05873c7e..0578aa8d0 100644 --- a/tests/src/com/android/email/mail/StoreTests.java +++ b/tests/src/com/android/email/mail/StoreTests.java @@ -21,7 +21,7 @@ import com.android.email.mail.Store.StoreInfo; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.MediumTest; diff --git a/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java b/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java index 5f6506fe2..96ea7ef12 100644 --- a/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java +++ b/tests/src/com/android/email/mail/store/ImapStoreUnitTests.java @@ -45,7 +45,7 @@ import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.mail.Part; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import org.apache.commons.io.IOUtils; diff --git a/tests/src/com/android/email/provider/AttachmentProviderTests.java b/tests/src/com/android/email/provider/AttachmentProviderTests.java index b25c8a4e2..d13f321cd 100644 --- a/tests/src/com/android/email/provider/AttachmentProviderTests.java +++ b/tests/src/com/android/email/provider/AttachmentProviderTests.java @@ -22,8 +22,8 @@ import com.android.emailcommon.mail.MessagingException; 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.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import android.content.ContentResolver; diff --git a/tests/src/com/android/email/provider/ContentCacheTests.java b/tests/src/com/android/email/provider/ContentCacheTests.java index 0cae7c77c..8b141fddc 100644 --- a/tests/src/com/android/email/provider/ContentCacheTests.java +++ b/tests/src/com/android/email/provider/ContentCacheTests.java @@ -21,7 +21,7 @@ import com.android.email.provider.ContentCache.CachedCursor; import com.android.email.provider.ContentCache.TokenList; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; +import com.android.emailcommon.provider.Mailbox; import android.content.ContentResolver; import android.content.ContentUris; diff --git a/tests/src/com/android/email/provider/PolicyTests.java b/tests/src/com/android/email/provider/PolicyTests.java index 9fd0fab0d..538f9b3a4 100644 --- a/tests/src/com/android/email/provider/PolicyTests.java +++ b/tests/src/com/android/email/provider/PolicyTests.java @@ -20,8 +20,8 @@ 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.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.provider.Policy; import android.content.Context; diff --git a/tests/src/com/android/email/provider/ProviderTestUtils.java b/tests/src/com/android/email/provider/ProviderTestUtils.java index 9ecb5d131..6120c1fc9 100644 --- a/tests/src/com/android/email/provider/ProviderTestUtils.java +++ b/tests/src/com/android/email/provider/ProviderTestUtils.java @@ -22,8 +22,8 @@ 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.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility; import android.content.ContentUris; diff --git a/tests/src/com/android/email/provider/ProviderTests.java b/tests/src/com/android/email/provider/ProviderTests.java index 05863c5cd..a127553c5 100644 --- a/tests/src/com/android/email/provider/ProviderTests.java +++ b/tests/src/com/android/email/provider/ProviderTests.java @@ -24,10 +24,10 @@ import com.android.emailcommon.provider.EmailContent.AttachmentColumns; import com.android.emailcommon.provider.EmailContent.Body; import com.android.emailcommon.provider.EmailContent.BodyColumns; import com.android.emailcommon.provider.EmailContent.HostAuth; -import com.android.emailcommon.provider.EmailContent.Mailbox; 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.provider.Mailbox; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; diff --git a/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java b/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java index cd9766de4..127ef37d1 100644 --- a/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java +++ b/tests/src/com/android/email/service/AttachmentDownloadServiceTests.java @@ -24,8 +24,8 @@ 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.EmailContent.Attachment; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceStatus; import android.content.Context; diff --git a/tests/src/com/android/email/widget/WidgetViewTests.java b/tests/src/com/android/email/widget/WidgetViewTests.java index 3a7e8969e..6caec9042 100644 --- a/tests/src/com/android/email/widget/WidgetViewTests.java +++ b/tests/src/com/android/email/widget/WidgetViewTests.java @@ -19,8 +19,8 @@ import com.android.email.provider.EmailProvider; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Account; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.test.ProviderTestCase2; diff --git a/tests/src/com/android/emailcommon/provider/MailboxTests.java b/tests/src/com/android/emailcommon/provider/MailboxTests.java index b99190d6c..65feb9022 100644 --- a/tests/src/com/android/emailcommon/provider/MailboxTests.java +++ b/tests/src/com/android/emailcommon/provider/MailboxTests.java @@ -20,7 +20,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.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; @@ -98,7 +97,7 @@ public class MailboxTests extends ProviderTestCase2 { Mailbox box1 = ProviderTestUtils.setupMailbox("box1", account1Id, true, c); long box1Id = box1.mId; - Mailbox box2 = EmailContent.Mailbox.restoreMailboxWithId(c, box1Id); + Mailbox box2 = Mailbox.restoreMailboxWithId(c, box1Id); ProviderTestUtils.assertMailboxEqual("testMailboxSave", box1, box2); } diff --git a/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java b/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java index a26674010..13011d611 100644 --- a/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java +++ b/tests/src/com/android/emailcommon/utility/UtilityMediumTests.java @@ -21,9 +21,9 @@ import com.android.email.provider.ProviderTestUtils; 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.Mailbox; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; +import com.android.emailcommon.provider.Mailbox; import android.content.Context; import android.net.Uri; diff --git a/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java b/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java index 36a2f477f..d0edd55d3 100644 --- a/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java +++ b/tests/src/com/android/emailcommon/utility/UtilityUnitTests.java @@ -23,9 +23,9 @@ import com.android.email.TestUtils; import com.android.email.provider.ProviderTestUtils; import com.android.emailcommon.provider.EmailContent.Account; import com.android.emailcommon.provider.EmailContent.Attachment; -import com.android.emailcommon.provider.EmailContent.Mailbox; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.Message; +import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.Utility.NewFileCreator; import android.content.Context;