diff options
author | Tony Mantler <nicoya@google.com> | 2014-04-11 14:42:28 -0700 |
---|---|---|
committer | Tony Mantler <nicoya@google.com> | 2014-04-14 12:54:39 -0700 |
commit | 3dd85723a1af5537e23e4b05bdc361cce9cd42be (patch) | |
tree | 02e1977d5a9cfbe75cd1d3188d4588a1c3fafb33 | |
parent | 80d76769852635096227ea467ce6375e61bfe01d (diff) | |
download | android_packages_apps_Email-3dd85723a1af5537e23e4b05bdc361cce9cd42be.tar.gz android_packages_apps_Email-3dd85723a1af5537e23e4b05bdc361cce9cd42be.tar.bz2 android_packages_apps_Email-3dd85723a1af5537e23e4b05bdc361cce9cd42be.zip |
Cleanup in EmailContent
Change-Id: Ifa251eb206779f59ea003f99395d454c7e407bc2
18 files changed, 332 insertions, 305 deletions
diff --git a/emailcommon/src/com/android/emailcommon/provider/Account.java b/emailcommon/src/com/android/emailcommon/provider/Account.java index c35009d34..c5533de66 100755 --- a/emailcommon/src/com/android/emailcommon/provider/Account.java +++ b/emailcommon/src/com/android/emailcommon/provider/Account.java @@ -32,15 +32,15 @@ import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; +import android.provider.BaseColumns; -import com.android.emailcommon.provider.EmailContent.AccountColumns; 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 final class Account extends EmailContent implements Parcelable { public static final String TABLE_NAME = "Account"; // Define all pseudo account IDs here to avoid conflict with one another. @@ -167,8 +167,8 @@ public final class Account extends EmailContent implements AccountColumns, Parce public static final int CONTENT_PING_DURATION_COLUMN = 17; public static final int CONTENT_MAX_ATTACHMENT_SIZE_COLUMN = 18; - public static final String[] CONTENT_PROJECTION = new String[] { - RECORD_ID, AccountColumns.DISPLAY_NAME, + public static final String[] CONTENT_PROJECTION = { + AttachmentColumns._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, @@ -184,14 +184,14 @@ public final class Account extends EmailContent implements AccountColumns, Parce /** * 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 String[] ID_TYPE_PROJECTION = { + BaseColumns._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[] ACCOUNT_FLAGS_PROJECTION = { + AccountColumns._ID, AccountColumns.FLAGS}; public static final String MAILBOX_SELECTION = MessageColumns.MAILBOX_KEY + " =?"; @@ -202,7 +202,7 @@ public final class Account extends EmailContent implements AccountColumns, Parce 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"; + AccountColumns.POLICY_KEY + " IS NOT NULL AND " + AccountColumns.POLICY_KEY + "!=0"; private static final String FIND_INBOX_SELECTION = MailboxColumns.TYPE + " = " + Mailbox.TYPE_INBOX + @@ -766,7 +766,7 @@ public final class Account extends EmailContent implements AccountColumns, Parce b.withValues(mHostAuthRecv.toContentValues()); if (recvCredentialsIndex >= 0) { final ContentValues cv = new ContentValues(); - cv.put(HostAuth.CREDENTIAL_KEY, recvCredentialsIndex); + cv.put(HostAuthColumns.CREDENTIAL_KEY, recvCredentialsIndex); b.withValueBackReferences(cv); } ops.add(b.build()); @@ -790,7 +790,7 @@ public final class Account extends EmailContent implements AccountColumns, Parce b.withValues(mHostAuthSend.toContentValues()); if (sendCredentialsIndex >= 0) { final ContentValues cv = new ContentValues(); - cv.put(HostAuth.CREDENTIAL_KEY, sendCredentialsIndex); + cv.put(HostAuthColumns.CREDENTIAL_KEY, sendCredentialsIndex); b.withValueBackReferences(cv); } ops.add(b.build()); @@ -801,10 +801,10 @@ public final class Account extends EmailContent implements AccountColumns, Parce if (recvIndex >= 0 || sendIndex >= 0) { cv = new ContentValues(); if (recvIndex >= 0) { - cv.put(Account.HOST_AUTH_KEY_RECV, recvIndex); + cv.put(AccountColumns.HOST_AUTH_KEY_RECV, recvIndex); } if (sendIndex >= 0) { - cv.put(Account.HOST_AUTH_KEY_SEND, sendIndex); + cv.put(AccountColumns.HOST_AUTH_KEY_SEND, sendIndex); } } diff --git a/emailcommon/src/com/android/emailcommon/provider/Credential.java b/emailcommon/src/com/android/emailcommon/provider/Credential.java index b0027c07e..d7961a29f 100644 --- a/emailcommon/src/com/android/emailcommon/provider/Credential.java +++ b/emailcommon/src/com/android/emailcommon/provider/Credential.java @@ -6,13 +6,14 @@ import android.database.Cursor; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; +import android.provider.BaseColumns; import android.text.TextUtils; import com.android.emailcommon.utility.Utility; import com.android.mail.utils.LogUtils; import com.google.common.base.Objects; -public class Credential extends EmailContent implements Parcelable { +public class Credential extends EmailContent implements Parcelable, BaseColumns { public static final String TABLE_NAME = "Credential"; public static Uri CONTENT_URI; @@ -49,7 +50,7 @@ public class Credential extends EmailContent implements Parcelable { public static final int EXPIRATION_COLUMN_INDEX = 4; public static final String[] PROJECTION = new String[] { - RECORD_ID, + _ID, PROVIDER_COLUMN, ACCESS_TOKEN_COLUMN, REFRESH_TOKEN_COLUMN, diff --git a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java index 6969385d9..66304faff 100755 --- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java +++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java @@ -33,6 +33,7 @@ import android.os.Looper; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; +import android.provider.BaseColumns; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; @@ -58,7 +59,7 @@ import java.util.ArrayList; * necessarily be cloned for use in these two cases. * * Conventions used in naming columns: - * RECORD_ID is the primary key for all Email records + * BaseColumns._ID is the primary key for all Email records * The SyncColumns interface is used by all classes that are synced to the server directly * (Mailbox and Email) * @@ -72,20 +73,20 @@ public abstract class EmailContent { public static final int NOTIFICATION_MAILBOX_UNSEEN_COUNT_COLUMN = 2; // All classes share this + // Use BaseColumns._ID instead + @Deprecated public static final String RECORD_ID = "_id"; - public static final String[] COUNT_COLUMNS = new String[]{"count(*)"}; + public static final String[] COUNT_COLUMNS = {"count(*)"}; /** * This projection can be used with any of the EmailContent classes, when all you need * is a list of id's. Use ID_PROJECTION_COLUMN to access the row data. */ - public static final String[] ID_PROJECTION = new String[] { - RECORD_ID - }; + public static final String[] ID_PROJECTION = { BaseColumns._ID }; public static final int ID_PROJECTION_COLUMN = 0; - public static final String ID_SELECTION = RECORD_ID + " =?"; + public static final String ID_SELECTION = BaseColumns._ID + " =?"; public static final String FIELD_COLUMN_NAME = "field"; public static final String ADD_COLUMN_NAME = "add"; @@ -394,7 +395,7 @@ public abstract class EmailContent { */ static public int count(Context context, Uri uri, String selection, String[] selectionArgs) { return Utility.getFirstRowLong(context, - uri, COUNT_COLUMNS, selection, selectionArgs, null, 0, Long.valueOf(0)).intValue(); + uri, COUNT_COLUMNS, selection, selectionArgs, null, 0, 0L).intValue(); } /** @@ -416,15 +417,13 @@ public abstract class EmailContent { } public interface SyncColumns { - public static final String ID = "_id"; // source id (string) : the source's name of this item public static final String SERVER_ID = "syncServerId"; // source's timestamp (long) for this item public static final String SERVER_TIMESTAMP = "syncServerTimeStamp"; } - public interface BodyColumns { - public static final String ID = "_id"; + public interface BodyColumns extends BaseColumns { // Foreign key to the message corresponding to this body public static final String MESSAGE_KEY = "messageKey"; // The html content itself @@ -448,10 +447,10 @@ public abstract class EmailContent { public static final String QUOTED_TEXT_START_POS = "quotedTextStartPos"; } - public static final class Body extends EmailContent implements BodyColumns { + public static final class Body extends EmailContent { public static final String TABLE_NAME = "Body"; - public static final String SELECTION_BY_MESSAGE_KEY = MESSAGE_KEY + "=?"; + public static final String SELECTION_BY_MESSAGE_KEY = BodyColumns.MESSAGE_KEY + "=?"; public static Uri CONTENT_URI; @@ -473,31 +472,37 @@ public abstract class EmailContent { public static final int CONTENT_QUOTED_TEXT_START_POS_COLUMN = 8; public static final String[] CONTENT_PROJECTION = new String[] { - RECORD_ID, BodyColumns.MESSAGE_KEY, BodyColumns.HTML_CONTENT, BodyColumns.TEXT_CONTENT, - BodyColumns.HTML_REPLY, BodyColumns.TEXT_REPLY, BodyColumns.SOURCE_MESSAGE_KEY, - BodyColumns.INTRO_TEXT, BodyColumns.QUOTED_TEXT_START_POS + BodyColumns._ID, + BodyColumns.MESSAGE_KEY, + BodyColumns.HTML_CONTENT, + BodyColumns.TEXT_CONTENT, + BodyColumns.HTML_REPLY, + BodyColumns.TEXT_REPLY, + BodyColumns.SOURCE_MESSAGE_KEY, + BodyColumns.INTRO_TEXT, + BodyColumns.QUOTED_TEXT_START_POS }; public static final String[] COMMON_PROJECTION_TEXT = new String[] { - RECORD_ID, BodyColumns.TEXT_CONTENT + BodyColumns._ID, BodyColumns.TEXT_CONTENT }; public static final String[] COMMON_PROJECTION_HTML = new String[] { - RECORD_ID, BodyColumns.HTML_CONTENT + BodyColumns._ID, BodyColumns.HTML_CONTENT }; @Deprecated - public static final String[] COMMON_PROJECTION_REPLY_TEXT = new String[] { - RECORD_ID, BodyColumns.TEXT_REPLY + private static final String[] COMMON_PROJECTION_REPLY_TEXT = new String[] { + BodyColumns._ID, BodyColumns.TEXT_REPLY }; @Deprecated - public static final String[] COMMON_PROJECTION_REPLY_HTML = new String[] { - RECORD_ID, BodyColumns.HTML_REPLY + private static final String[] COMMON_PROJECTION_REPLY_HTML = new String[] { + BodyColumns._ID, BodyColumns.HTML_REPLY }; @Deprecated - public static final String[] COMMON_PROJECTION_INTRO = new String[] { - RECORD_ID, BodyColumns.INTRO_TEXT + private static final String[] COMMON_PROJECTION_INTRO = new String[] { + BodyColumns._ID, BodyColumns.INTRO_TEXT }; public static final String[] COMMON_PROJECTION_SOURCE = new String[] { - RECORD_ID, BodyColumns.SOURCE_MESSAGE_KEY + BodyColumns._ID, BodyColumns.SOURCE_MESSAGE_KEY }; public static final int COMMON_PROJECTION_COLUMN_TEXT = 1; @@ -514,9 +519,7 @@ public abstract class EmailContent { public int mQuotedTextStartPos; /** - * Points to the ID of the message being replied to or forwarded. Will always be set, - * even if {@link #mHtmlReply} and {@link #mTextReply} are null (indicating the user doesn't - * want to include quoted text. + * Points to the ID of the message being replied to or forwarded. Will always be set. */ public long mSourceKey; @Deprecated @@ -568,7 +571,7 @@ public abstract class EmailContent { public static Body restoreBodyWithMessageId(Context context, long messageId) { Cursor c = context.getContentResolver().query(Body.CONTENT_URI, - Body.CONTENT_PROJECTION, Body.MESSAGE_KEY + "=?", + Body.CONTENT_PROJECTION, BodyColumns.MESSAGE_KEY + "=?", new String[] {Long.toString(messageId)}, null); if (c == null) throw new ProviderUnavailableException(); return restoreBodyWithCursor(c); @@ -579,9 +582,8 @@ public abstract class EmailContent { */ public static long lookupBodyIdWithMessageId(Context context, long messageId) { return Utility.getFirstRowLong(context, Body.CONTENT_URI, - ID_PROJECTION, Body.MESSAGE_KEY + "=?", - new String[] {Long.toString(messageId)}, null, ID_PROJECTION_COLUMN, - Long.valueOf(-1)); + ID_PROJECTION, BodyColumns.MESSAGE_KEY + "=?", + new String[] {Long.toString(messageId)}, null, ID_PROJECTION_COLUMN, -1L); } /** @@ -606,14 +608,14 @@ public abstract class EmailContent { public static long restoreBodySourceKey(Context context, long messageId) { return Utility.getFirstRowLong(context, Body.CONTENT_URI, Body.PROJECTION_SOURCE_KEY, - Body.MESSAGE_KEY + "=?", new String[] {Long.toString(messageId)}, null, 0, - Long.valueOf(0)); + BodyColumns.MESSAGE_KEY + "=?", new String[] {Long.toString(messageId)}, null, + 0, 0L); } private static String restoreTextWithMessageId(Context context, long messageId, String[] projection) { Cursor c = context.getContentResolver().query(Body.CONTENT_URI, projection, - Body.MESSAGE_KEY + "=?", new String[] {Long.toString(messageId)}, null); + BodyColumns.MESSAGE_KEY + "=?", new String[] {Long.toString(messageId)}, null); if (c == null) throw new ProviderUnavailableException(); try { if (c.moveToFirst()) { @@ -663,8 +665,7 @@ public abstract class EmailContent { } } - public interface MessageColumns { - public static final String ID = "_id"; + public interface MessageColumns extends BaseColumns, SyncColumns { // Basic columns used in message list presentation // The name as shown to the user in a message list public static final String DISPLAY_NAME = "displayName"; @@ -732,7 +733,7 @@ public abstract class EmailContent { } - public static final class Message extends EmailContent implements SyncColumns, MessageColumns { + public static final class Message extends EmailContent { private static final String LOG_TAG = "Email"; public static final String TABLE_NAME = "Message"; @@ -793,8 +794,8 @@ public abstract class EmailContent { public static final int CONTENT_FLAG_SEEN_COLUMN = 25; public static final int CONTENT_MAIN_MAILBOX_KEY_COLUMN = 26; - public static final String[] CONTENT_PROJECTION = new String[] { - RECORD_ID, + public static final String[] CONTENT_PROJECTION = { + MessageColumns._ID, MessageColumns.DISPLAY_NAME, MessageColumns.TIMESTAMP, MessageColumns.SUBJECT, MessageColumns.FLAG_READ, MessageColumns.FLAG_LOADED, MessageColumns.FLAG_FAVORITE, @@ -825,8 +826,8 @@ public abstract class EmailContent { public static final int LIST_SNIPPET_COLUMN = 12; // Public projection for common list columns - public static final String[] LIST_PROJECTION = new String[] { - RECORD_ID, + public static final String[] LIST_PROJECTION = { + MessageColumns._ID, MessageColumns.DISPLAY_NAME, MessageColumns.TIMESTAMP, MessageColumns.SUBJECT, MessageColumns.FLAG_READ, MessageColumns.FLAG_LOADED, MessageColumns.FLAG_FAVORITE, @@ -837,16 +838,16 @@ public abstract class EmailContent { public static final int ID_COLUMNS_ID_COLUMN = 0; public static final int ID_COLUMNS_SYNC_SERVER_ID = 1; - public static final String[] ID_COLUMNS_PROJECTION = new String[] { - RECORD_ID, SyncColumns.SERVER_ID + public static final String[] ID_COLUMNS_PROJECTION = { + MessageColumns._ID, SyncColumns.SERVER_ID }; - public static final String[] ID_COLUMN_PROJECTION = new String[] { RECORD_ID }; + public static final String[] ID_COLUMN_PROJECTION = { MessageColumns._ID }; public static final String ACCOUNT_KEY_SELECTION = MessageColumns.ACCOUNT_KEY + "=?"; - public static final String[] MAILBOX_KEY_PROJECTION = new String[] { MAILBOX_KEY }; + public static final String[] MAILBOX_KEY_PROJECTION = { MessageColumns.MAILBOX_KEY }; /** * Selection for messages that are loaded @@ -864,7 +865,7 @@ public abstract class EmailContent { public static final String ALL_FAVORITE_SELECTION = MessageColumns.FLAG_FAVORITE + "=1 AND " + MessageColumns.MAILBOX_KEY + " NOT IN (" - + "SELECT " + MailboxColumns.ID + " FROM " + Mailbox.TABLE_NAME + "" + + "SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + "" + " WHERE " + MailboxColumns.TYPE + " = " + Mailbox.TYPE_TRASH + ")" + " AND " + FLAG_LOADED_SELECTION; @@ -872,7 +873,7 @@ public abstract class EmailContent { /** Selection to retrieve all messages in "inbox" for any account */ public static final String ALL_INBOX_SELECTION = MessageColumns.MAILBOX_KEY + " IN (" - + "SELECT " + MailboxColumns.ID + " FROM " + Mailbox.TABLE_NAME + + "SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + " = " + Mailbox.TYPE_INBOX + ")" + " AND " + FLAG_LOADED_SELECTION; @@ -880,7 +881,7 @@ public abstract class EmailContent { /** Selection to retrieve all messages in "drafts" for any account */ public static final String ALL_DRAFT_SELECTION = MessageColumns.MAILBOX_KEY + " IN (" - + "SELECT " + MailboxColumns.ID + " FROM " + Mailbox.TABLE_NAME + + "SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + " = " + Mailbox.TYPE_DRAFTS + ")" + " AND " + FLAG_LOADED_SELECTION; @@ -888,7 +889,7 @@ public abstract class EmailContent { /** Selection to retrieve all messages in "outbox" for any account */ public static final String ALL_OUTBOX_SELECTION = MessageColumns.MAILBOX_KEY + " IN (" - + "SELECT " + MailboxColumns.ID + " FROM " + Mailbox.TABLE_NAME + + "SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + " = " + Mailbox.TYPE_OUTBOX + ")"; // NOTE No flag_loaded test for outboxes. @@ -907,7 +908,7 @@ public abstract class EmailContent { public static final String PER_ACCOUNT_FAVORITE_SELECTION = ACCOUNT_KEY_SELECTION + " AND " + ALL_FAVORITE_SELECTION; - public static final String MAILBOX_SELECTION = MAILBOX_KEY + "=?"; + public static final String MAILBOX_SELECTION = MessageColumns.MAILBOX_KEY + "=?"; // _id field is in AbstractContent public String mDisplayName; @@ -1183,7 +1184,8 @@ public abstract class EmailContent { b = ContentProviderOperation.newInsert(mBaseUri); } else { b = ContentProviderOperation.newUpdate(mBaseUri) - .withSelection(Message.RECORD_ID + "=?", new String[] {Long.toString(mId)}); + .withSelection(MessageColumns._ID + "=?", + new String[] {Long.toString(mId)}); } // Generate the snippet here, before we create the CPO for Message if (mText != null) { @@ -1196,16 +1198,16 @@ public abstract class EmailContent { // Create and save the body ContentValues cv = new ContentValues(); if (mText != null) { - cv.put(Body.TEXT_CONTENT, mText); + cv.put(BodyColumns.TEXT_CONTENT, mText); } if (mHtml != null) { - cv.put(Body.HTML_CONTENT, mHtml); + cv.put(BodyColumns.HTML_CONTENT, mHtml); } if (mSourceKey != 0) { - cv.put(Body.SOURCE_MESSAGE_KEY, mSourceKey); + cv.put(BodyColumns.SOURCE_MESSAGE_KEY, mSourceKey); } if (mQuotedTextStartPos != 0) { - cv.put(Body.QUOTED_TEXT_START_POS, mQuotedTextStartPos); + cv.put(BodyColumns.QUOTED_TEXT_START_POS, mQuotedTextStartPos); } // We'll need this if we're new int messageBackValue = ops.size() - 1; @@ -1214,13 +1216,13 @@ public abstract class EmailContent { b = ContentProviderOperation.newInsert(Body.CONTENT_URI); // Put our message id in the Body if (!isNew) { - cv.put(Body.MESSAGE_KEY, mId); + cv.put(BodyColumns.MESSAGE_KEY, mId); } b.withValues(cv); // If we're new, create a back value entry if (isNew) { ContentValues backValues = new ContentValues(); - backValues.put(Body.MESSAGE_KEY, messageBackValue); + backValues.put(BodyColumns.MESSAGE_KEY, messageBackValue); b.withValueBackReferences(backValues); } // And add the Body operation @@ -1236,7 +1238,7 @@ public abstract class EmailContent { b = ContentProviderOperation.newInsert(Attachment.CONTENT_URI) .withValues(att.toContentValues()); if (isNew) { - b.withValueBackReference(Attachment.MESSAGE_KEY, messageBackValue); + b.withValueBackReference(AttachmentColumns.MESSAGE_KEY, messageBackValue); } ops.add(b.build()); } @@ -1323,8 +1325,7 @@ public abstract class EmailContent { } } - public interface AttachmentColumns { - public static final String ID = "_id"; + public interface AttachmentColumns extends BaseColumns { // The display name of the attachment public static final String FILENAME = "fileName"; // The mime type of the attachment @@ -1361,8 +1362,7 @@ public abstract class EmailContent { public static final String UI_DOWNLOADED_SIZE = "uiDownloadedSize"; } - public static final class Attachment extends EmailContent - implements AttachmentColumns, Parcelable { + public static final class Attachment extends EmailContent implements Parcelable { public static final String TABLE_NAME = "Attachment"; public static final String ATTACHMENT_PROVIDER_LEGACY_URI_PREFIX = "content://com.android.email.attachmentprovider"; @@ -1421,8 +1421,8 @@ public abstract class EmailContent { public static final int CONTENT_UI_STATE_COLUMN = 14; public static final int CONTENT_UI_DESTINATION_COLUMN = 15; public static final int CONTENT_UI_DOWNLOADED_SIZE_COLUMN = 16; - public static final String[] CONTENT_PROJECTION = new String[] { - RECORD_ID, AttachmentColumns.FILENAME, AttachmentColumns.MIME_TYPE, + public static final String[] CONTENT_PROJECTION = { + AttachmentColumns._ID, AttachmentColumns.FILENAME, AttachmentColumns.MIME_TYPE, AttachmentColumns.SIZE, AttachmentColumns.CONTENT_ID, AttachmentColumns.CONTENT_URI, AttachmentColumns.CACHED_FILE, AttachmentColumns.MESSAGE_KEY, AttachmentColumns.LOCATION, AttachmentColumns.ENCODING, AttachmentColumns.CONTENT, @@ -1433,11 +1433,11 @@ public abstract class EmailContent { // All attachments with an empty URI, regardless of mailbox public static final String PRECACHE_SELECTION = - AttachmentColumns.CONTENT_URI + " isnull AND " + Attachment.FLAGS + "=0"; + AttachmentColumns.CONTENT_URI + " isnull AND " + AttachmentColumns.FLAGS + "=0"; // Attachments with an empty URI that are in an inbox public static final String PRECACHE_INBOX_SELECTION = PRECACHE_SELECTION + " AND " + AttachmentColumns.MESSAGE_KEY + " IN (" - + "SELECT " + MessageColumns.ID + " FROM " + Message.TABLE_NAME + + "SELECT " + MessageColumns._ID + " FROM " + Message.TABLE_NAME + " WHERE " + Message.ALL_INBOX_SELECTION + ")"; @@ -1699,8 +1699,7 @@ public abstract class EmailContent { } } - public interface AccountColumns { - public static final String ID = "_id"; + public interface AccountColumns extends BaseColumns { // The display name of the account (user-settable) public static final String DISPLAY_NAME = "displayName"; // The email address corresponding to this account @@ -1757,15 +1756,16 @@ public abstract class EmailContent { public static final String PING_DURATION = "pingDuration"; } - public interface QuickResponseColumns { - static final String ID = "_id"; + public interface QuickResponseColumns extends BaseColumns { // The QuickResponse text static final String TEXT = "quickResponse"; // A foreign key into the Account table owning the QuickResponse static final String ACCOUNT_KEY = "accountKey"; } - public interface MailboxColumns { + public interface MailboxColumns extends BaseColumns { + // Use _ID instead + @Deprecated public static final String ID = "_id"; // The display name of this mailbox [INDEX] static final String DISPLAY_NAME = "displayName"; @@ -1830,8 +1830,7 @@ public abstract class EmailContent { public static final String LAST_FULL_SYNC_TIME = "lastFullSyncTime"; } - public interface HostAuthColumns { - public static final String ID = "_id"; + public interface HostAuthColumns extends BaseColumns { // The protocol (e.g. "imap", "pop3", "eas", "smtp" static final String PROTOCOL = "protocol"; // The host address @@ -1856,8 +1855,7 @@ public abstract class EmailContent { static final String CREDENTIAL_KEY = "credentialKey"; } - public interface PolicyColumns { - public static final String ID = "_id"; + public interface PolicyColumns extends BaseColumns { public static final String PASSWORD_MODE = "passwordMode"; public static final String PASSWORD_MIN_LENGTH = "passwordMinLength"; public static final String PASSWORD_EXPIRATION_DAYS = "passwordExpirationDays"; diff --git a/emailcommon/src/com/android/emailcommon/provider/HostAuth.java b/emailcommon/src/com/android/emailcommon/provider/HostAuth.java index ea5ed254b..14effc20a 100644 --- a/emailcommon/src/com/android/emailcommon/provider/HostAuth.java +++ b/emailcommon/src/com/android/emailcommon/provider/HostAuth.java @@ -32,7 +32,7 @@ import com.android.emailcommon.utility.Utility; import java.net.URI; import java.net.URISyntaxException; -public class HostAuth extends EmailContent implements HostAuthColumns, Parcelable { +public class HostAuth extends EmailContent implements Parcelable { public static final String TABLE_NAME = "HostAuth"; public static Uri CONTENT_URI; diff --git a/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java b/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java index f88cee827..934bf315a 100644 --- a/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java +++ b/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java @@ -24,6 +24,7 @@ import android.database.Cursor; import android.text.TextUtils; import com.android.emailcommon.Logging; +import com.android.emailcommon.provider.EmailContent.AccountColumns; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.mail.utils.LogUtils; @@ -166,7 +167,7 @@ public class MailboxUtilities { if (account == null) return; // Set temporary flag indicating state of update of mailbox list ContentValues cv = new ContentValues(); - cv.put(Account.FLAGS, start ? (account.mFlags | ACCOUNT_MAILBOX_CHANGE_FLAG) : + cv.put(AccountColumns.FLAGS, start ? (account.mFlags | ACCOUNT_MAILBOX_CHANGE_FLAG) : account.mFlags & ~ACCOUNT_MAILBOX_CHANGE_FLAG); context.getContentResolver().update( ContentUris.withAppendedId(Account.CONTENT_URI, account.mId), cv, null, null); @@ -219,7 +220,7 @@ public class MailboxUtilities { } private static final String[] HIERARCHY_PROJECTION = new String[] { - MailboxColumns.ID, MailboxColumns.DISPLAY_NAME, MailboxColumns.PARENT_KEY, + MailboxColumns._ID, MailboxColumns.DISPLAY_NAME, MailboxColumns.PARENT_KEY, MailboxColumns.HIERARCHICAL_NAME }; private static final int HIERARCHY_ID = 0; diff --git a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java index a620a284c..33ddde7dc 100644 --- a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java +++ b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java @@ -74,7 +74,7 @@ public class SSLUtils { mHostAuth = hostAuth; // We must load the server cert manually (the ContentCache won't handle blobs Cursor c = context.getContentResolver().query(HostAuth.CONTENT_URI, - new String[] {HostAuthColumns.SERVER_CERT}, HostAuth.ID + "=?", + new String[] {HostAuthColumns.SERVER_CERT}, HostAuthColumns._ID + "=?", new String[] {Long.toString(hostAuth.mId)}, null); if (c != null) { try { diff --git a/emailsync/src/com/android/emailsync/SyncManager.java b/emailsync/src/com/android/emailsync/SyncManager.java index 2ec6f36d8..29a9b3cd4 100644 --- a/emailsync/src/com/android/emailsync/SyncManager.java +++ b/emailsync/src/com/android/emailsync/SyncManager.java @@ -131,7 +131,7 @@ public abstract class SyncManager extends Service implements Runnable { + Mailbox.TYPE_CALENDAR + ')'; protected static final String WHERE_IN_ACCOUNT_AND_TYPE_INBOX = MailboxColumns.ACCOUNT_KEY + "=? and type = " + Mailbox.TYPE_INBOX ; - private static final String WHERE_MAILBOX_KEY = Message.MAILBOX_KEY + "=?"; + private static final String WHERE_MAILBOX_KEY = MessageColumns.MAILBOX_KEY + "=?"; private static final String WHERE_NOT_INTERVAL_NEVER_AND_ACCOUNT_KEY_IN = "(" + MailboxColumns.TYPE + '=' + Mailbox.TYPE_OUTBOX + " or " + MailboxColumns.SYNC_INTERVAL + "<" + Mailbox.CHECK_INTERVAL_NEVER + ')' @@ -1208,7 +1208,6 @@ public abstract class SyncManager extends Service implements Runnable { * Starts a service thread and enters it into the service map * This is the point of instantiation of all sync threads * @param service the service to start - * @param m the Mailbox on which the service will operate */ private void startServiceThread(AbstractSyncService service) { final Mailbox mailbox = service.mMailbox; @@ -1656,7 +1655,7 @@ public abstract class SyncManager extends Service implements Runnable { /** * Check whether an Outbox (referenced by a Cursor) has any messages that can be sent - * @param c the cursor to an Outbox + * @param outboxCursor the cursor to an Outbox * @return true if there is mail to be sent */ private boolean hasSendableMessages(Cursor outboxCursor) { diff --git a/src/com/android/email/AttachmentInfo.java b/src/com/android/email/AttachmentInfo.java index 91a330026..13ff068f7 100644 --- a/src/com/android/email/AttachmentInfo.java +++ b/src/com/android/email/AttachmentInfo.java @@ -18,6 +18,7 @@ package com.android.email; import com.android.emailcommon.internet.MimeUtility; import com.android.emailcommon.provider.EmailContent.Attachment; +import com.android.emailcommon.provider.EmailContent.AttachmentColumns; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.Utility; @@ -39,8 +40,14 @@ import java.util.List; */ public class AttachmentInfo { // Projection which can be used with the constructor taking a Cursor argument - public static final String[] PROJECTION = new String[] {Attachment.RECORD_ID, Attachment.SIZE, - Attachment.FILENAME, Attachment.MIME_TYPE, Attachment.ACCOUNT_KEY, Attachment.FLAGS}; + public static final String[] PROJECTION = { + AttachmentColumns._ID, + AttachmentColumns.SIZE, + AttachmentColumns.FILENAME, + AttachmentColumns.MIME_TYPE, + AttachmentColumns.ACCOUNT_KEY, + AttachmentColumns.FLAGS + }; // Offsets into PROJECTION public static final int COLUMN_ID = 0; public static final int COLUMN_SIZE = 1; diff --git a/src/com/android/email/activity/setup/AccountSetupFinal.java b/src/com/android/email/activity/setup/AccountSetupFinal.java index 236cff5cb..e60d6af7d 100644 --- a/src/com/android/email/activity/setup/AccountSetupFinal.java +++ b/src/com/android/email/activity/setup/AccountSetupFinal.java @@ -44,6 +44,7 @@ import com.android.email.R; import com.android.email.service.EmailServiceUtils; import com.android.emailcommon.VendorPolicyLoader; import com.android.emailcommon.provider.Account; +import com.android.emailcommon.provider.EmailContent.AccountColumns; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.service.SyncWindow; import com.android.mail.utils.LogUtils; @@ -400,7 +401,8 @@ public class AccountSetupFinal extends AccountSetupActivity @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { return new CursorLoader(AccountSetupFinal.this, Account.CONTENT_URI, - new String[] {Account.EMAIL_ADDRESS, Account.DISPLAY_NAME}, + new String[] {AccountColumns.EMAIL_ADDRESS, + AccountColumns.DISPLAY_NAME}, null, null, null); } @@ -413,9 +415,10 @@ public class AccountSetupFinal extends AccountSetupActivity mExistingAccountsMap = new HashMap<String, String>(); - final int emailColumnIndex = data.getColumnIndex(Account.EMAIL_ADDRESS); + final int emailColumnIndex = data.getColumnIndex( + AccountColumns.EMAIL_ADDRESS); final int displayNameColumnIndex = - data.getColumnIndex(Account.DISPLAY_NAME); + data.getColumnIndex(AccountColumns.DISPLAY_NAME); while (data.moveToNext()) { final String email = data.getString(emailColumnIndex); diff --git a/src/com/android/email/activity/setup/MailboxSettings.java b/src/com/android/email/activity/setup/MailboxSettings.java index 4c5df74b5..3673ae66f 100644 --- a/src/com/android/email/activity/setup/MailboxSettings.java +++ b/src/com/android/email/activity/setup/MailboxSettings.java @@ -39,6 +39,7 @@ import android.view.MenuItem; import com.android.email.R; import com.android.emailcommon.Logging; 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.Mailbox; import com.android.emailcommon.provider.Policy; @@ -219,7 +220,7 @@ public class MailboxSettings extends PreferenceActivity { private static class MailboxLoader extends MailAsyncTaskLoader<Map<String, Object>> { /** Projection for loading an account's policy key. */ private static final String[] POLICY_KEY_PROJECTION = - { Account.POLICY_KEY }; + { AccountColumns.POLICY_KEY }; private static final int POLICY_KEY_COLUMN = 0; /** Projection for loading the max email lookback. */ diff --git a/src/com/android/email/provider/DBHelper.java b/src/com/android/email/provider/DBHelper.java index 6cc011277..40bebfb1d 100644 --- a/src/com/android/email/provider/DBHelper.java +++ b/src/com/android/email/provider/DBHelper.java @@ -24,6 +24,7 @@ import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import android.provider.BaseColumns; import android.provider.CalendarContract; import android.provider.ContactsContract; import android.text.TextUtils; @@ -70,37 +71,37 @@ public final class DBHelper { private static final String LEGACY_SCHEME_EAS = "eas"; - private static final String WHERE_ID = EmailContent.RECORD_ID + "=?"; + private static final String WHERE_ID = BaseColumns._ID + "=?"; private static final String TRIGGER_MAILBOX_DELETE = "create trigger mailbox_delete before delete on " + Mailbox.TABLE_NAME + " begin" + " delete from " + Message.TABLE_NAME + - " where " + MessageColumns.MAILBOX_KEY + "=old." + EmailContent.RECORD_ID + + " where " + MessageColumns.MAILBOX_KEY + "=old." + BaseColumns._ID + "; delete from " + Message.UPDATED_TABLE_NAME + - " where " + MessageColumns.MAILBOX_KEY + "=old." + EmailContent.RECORD_ID + + " where " + MessageColumns.MAILBOX_KEY + "=old." + BaseColumns._ID + "; delete from " + Message.DELETED_TABLE_NAME + - " where " + MessageColumns.MAILBOX_KEY + "=old." + EmailContent.RECORD_ID + + " where " + MessageColumns.MAILBOX_KEY + "=old." + BaseColumns._ID + "; end"; private static final String TRIGGER_ACCOUNT_DELETE = "create trigger account_delete before delete on " + Account.TABLE_NAME + " begin delete from " + Mailbox.TABLE_NAME + - " where " + MailboxColumns.ACCOUNT_KEY + "=old." + EmailContent.RECORD_ID + + " where " + MailboxColumns.ACCOUNT_KEY + "=old." + BaseColumns._ID + "; delete from " + HostAuth.TABLE_NAME + - " where " + EmailContent.RECORD_ID + "=old." + AccountColumns.HOST_AUTH_KEY_RECV + + " where " + BaseColumns._ID + "=old." + AccountColumns.HOST_AUTH_KEY_RECV + "; delete from " + HostAuth.TABLE_NAME + - " where " + EmailContent.RECORD_ID + "=old." + AccountColumns.HOST_AUTH_KEY_SEND + + " where " + BaseColumns._ID + "=old." + AccountColumns.HOST_AUTH_KEY_SEND + "; delete from " + Policy.TABLE_NAME + - " where " + EmailContent.RECORD_ID + "=old." + AccountColumns.POLICY_KEY + + " where " + BaseColumns._ID + "=old." + AccountColumns.POLICY_KEY + "; end"; private static final String TRIGGER_HOST_AUTH_DELETE = "create trigger host_auth_delete after delete on " + HostAuth.TABLE_NAME + " begin delete from " + Credential.TABLE_NAME + - " where " + Credential.RECORD_ID + "=old." + HostAuth.CREDENTIAL_KEY + + " where " + Credential._ID + "=old." + HostAuthColumns.CREDENTIAL_KEY + " and (select count(*) from " + HostAuth.TABLE_NAME + " where " + - HostAuth.CREDENTIAL_KEY + "=old." + HostAuth.CREDENTIAL_KEY + ")=0" + + HostAuthColumns.CREDENTIAL_KEY + "=old." + HostAuthColumns.CREDENTIAL_KEY + ")=0" + "; end"; @@ -208,7 +209,7 @@ public final class DBHelper { Message.TABLE_NAME + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.MESSAGE_COUNT + '=' + MailboxColumns.MESSAGE_COUNT + "+1" + - " where " + EmailContent.RECORD_ID + "=NEW." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=NEW." + MessageColumns.MAILBOX_KEY + "; end"); // Delete a message. @@ -216,7 +217,7 @@ public final class DBHelper { Message.TABLE_NAME + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.MESSAGE_COUNT + '=' + MailboxColumns.MESSAGE_COUNT + "-1" + - " where " + EmailContent.RECORD_ID + "=OLD." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=OLD." + MessageColumns.MAILBOX_KEY + "; end"); // Change a message's mailbox. @@ -224,15 +225,15 @@ public final class DBHelper { MessageColumns.MAILBOX_KEY + " on " + Message.TABLE_NAME + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.MESSAGE_COUNT + '=' + MailboxColumns.MESSAGE_COUNT + "-1" + - " where " + EmailContent.RECORD_ID + "=OLD." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=OLD." + MessageColumns.MAILBOX_KEY + "; update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.MESSAGE_COUNT + '=' + MailboxColumns.MESSAGE_COUNT + "+1" + - " where " + EmailContent.RECORD_ID + "=NEW." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=NEW." + MessageColumns.MAILBOX_KEY + "; end"); } static void createCredentialsTable(SQLiteDatabase db) { - String s = " (" + Credential.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + Credential._ID + " integer primary key autoincrement, " + Credential.PROVIDER_COLUMN + " text," + Credential.ACCESS_TOKEN_COLUMN + " text," + Credential.REFRESH_TOKEN_COLUMN + " text," @@ -269,21 +270,21 @@ public final class DBHelper { + Message.TABLE_NAME + " for each row when new." + SyncColumns.SERVER_ID + " is not null and " + "(select " + MailboxColumns.TYPE + " from " + Mailbox.TABLE_NAME - + " where " + MailboxColumns.ID + "=new." + + " where " + MailboxColumns._ID + "=new." + MessageColumns.MAILBOX_KEY + ")!=" + Mailbox.TYPE_SEARCH + " and (select " + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + " from " + HostAuth.TABLE_NAME + "," + Account.TABLE_NAME + " where new." + MessageColumns.ACCOUNT_KEY - + "=" + Account.TABLE_NAME + "." + AccountColumns.ID + + "=" + Account.TABLE_NAME + "." + AccountColumns._ID + " and " + Account.TABLE_NAME + "." + AccountColumns.HOST_AUTH_KEY_RECV - + "=" + HostAuth.TABLE_NAME + "." + HostAuthColumns.ID + + "=" + HostAuth.TABLE_NAME + "." + HostAuthColumns._ID + ")='" + context.getString(R.string.protocol_eas) + "'" + " begin delete from " + Message.TABLE_NAME + " where new." + SyncColumns.SERVER_ID + "=" + SyncColumns.SERVER_ID + " and new." + MessageColumns.ACCOUNT_KEY + "=" + MessageColumns.ACCOUNT_KEY + " and (select " + Mailbox.TABLE_NAME + "." + MailboxColumns.TYPE + " from " - + Mailbox.TABLE_NAME + " where " + MailboxColumns.ID + "=" + + Mailbox.TABLE_NAME + " where " + MailboxColumns._ID + "=" + MessageColumns.MAILBOX_KEY + ")!=" + Mailbox.TYPE_SEARCH +"; end"); } @@ -316,7 +317,7 @@ public final class DBHelper { // This String and the following String MUST have the same columns, except for the type // of those columns! - String createString = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String createString = " (" + BaseColumns._ID + " integer primary key autoincrement, " + SyncColumns.SERVER_ID + " text, " + SyncColumns.SERVER_TIMESTAMP + " integer, " + messageColumns; @@ -324,7 +325,7 @@ public final class DBHelper { // For the updated and deleted tables, the id is assigned, but we do want to keep track // of the ORDER of updates using an autoincrement primary key. We use the DATA column // at this point; it has no other function - String altCreateString = " (" + EmailContent.RECORD_ID + " integer unique, " + String altCreateString = " (" + BaseColumns._ID + " integer unique, " + SyncColumns.SERVER_ID + " text, " + SyncColumns.SERVER_TIMESTAMP + " integer, " + messageColumns; @@ -351,7 +352,7 @@ public final class DBHelper { // in a separate database, and trigger cannot operate on attached databases. db.execSQL("create trigger message_delete before delete on " + Message.TABLE_NAME + " begin delete from " + Attachment.TABLE_NAME + - " where " + AttachmentColumns.MESSAGE_KEY + "=old." + EmailContent.RECORD_ID + + " where " + AttachmentColumns.MESSAGE_KEY + "=old." + BaseColumns._ID + "; end"); // Add triggers to keep unread count accurate per mailbox @@ -364,7 +365,7 @@ public final class DBHelper { " when NEW." + MessageColumns.FLAG_READ + "=0" + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.UNREAD_COUNT + '=' + MailboxColumns.UNREAD_COUNT + "+1" + - " where " + EmailContent.RECORD_ID + "=NEW." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=NEW." + MessageColumns.MAILBOX_KEY + "; end"); // Delete a message; if flagRead is zero, decrement the unread count of the msg's mailbox @@ -372,7 +373,7 @@ public final class DBHelper { " when OLD." + MessageColumns.FLAG_READ + "=0" + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.UNREAD_COUNT + '=' + MailboxColumns.UNREAD_COUNT + "-1" + - " where " + EmailContent.RECORD_ID + "=OLD." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=OLD." + MessageColumns.MAILBOX_KEY + "; end"); // Change a message's mailbox @@ -381,10 +382,10 @@ public final class DBHelper { " when OLD." + MessageColumns.FLAG_READ + "=0" + " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.UNREAD_COUNT + '=' + MailboxColumns.UNREAD_COUNT + "-1" + - " where " + EmailContent.RECORD_ID + "=OLD." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=OLD." + MessageColumns.MAILBOX_KEY + "; update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.UNREAD_COUNT + '=' + MailboxColumns.UNREAD_COUNT + "+1" + - " where " + EmailContent.RECORD_ID + "=NEW." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=NEW." + MessageColumns.MAILBOX_KEY + "; end"); // Change a message's read state @@ -394,7 +395,7 @@ public final class DBHelper { " begin update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.UNREAD_COUNT + '=' + MailboxColumns.UNREAD_COUNT + "+ case OLD." + MessageColumns.FLAG_READ + " when 0 then -1 else 1 end" + - " where " + EmailContent.RECORD_ID + "=OLD." + MessageColumns.MAILBOX_KEY + + " where " + BaseColumns._ID + "=OLD." + MessageColumns.MAILBOX_KEY + "; end"); // Add triggers to maintain message_count. @@ -444,13 +445,13 @@ public final class DBHelper { // Trigger to delete from the change log when a message is deleted. db.execSQL("create trigger " + tableName + "_delete_message before delete on " + Message.TABLE_NAME + " for each row begin delete from " + tableName - + " where " + MessageChangeLogTable.MESSAGE_KEY + "=old." + MessageColumns.ID + + " where " + MessageChangeLogTable.MESSAGE_KEY + "=old." + MessageColumns._ID + "; end"); // Trigger to delete from the change log when an account is deleted. db.execSQL("create trigger " + tableName + "_delete_account before delete on " + Account.TABLE_NAME + " for each row begin delete from " + tableName - + " where " + MessageChangeLogTable.ACCOUNT_KEY + "=old." + AccountColumns.ID + + " where " + MessageChangeLogTable.ACCOUNT_KEY + "=old." + AccountColumns._ID + "; end"); } @@ -488,7 +489,7 @@ public final class DBHelper { @SuppressWarnings("deprecation") static void createAccountTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + AccountColumns._ID + " integer primary key autoincrement, " + AccountColumns.DISPLAY_NAME + " text, " + AccountColumns.EMAIL_ADDRESS + " text, " + AccountColumns.SYNC_KEY + " text, " @@ -524,7 +525,7 @@ public final class DBHelper { } static void createPolicyTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + PolicyColumns._ID + " integer primary key autoincrement, " + PolicyColumns.PASSWORD_MODE + " integer, " + PolicyColumns.PASSWORD_MIN_LENGTH + " integer, " + PolicyColumns.PASSWORD_EXPIRATION_DAYS + " integer, " @@ -552,7 +553,7 @@ public final class DBHelper { } static void createHostAuthTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + HostAuthColumns._ID + " integer primary key autoincrement, " + HostAuthColumns.PROTOCOL + " text, " + HostAuthColumns.ADDRESS + " text, " + HostAuthColumns.PORT + " integer, " @@ -577,7 +578,7 @@ public final class DBHelper { } static void createMailboxTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + MailboxColumns._ID + " integer primary key autoincrement, " + MailboxColumns.DISPLAY_NAME + " text, " + MailboxColumns.SERVER_ID + " text, " + MailboxColumns.PARENT_SERVER_ID + " text, " @@ -622,7 +623,7 @@ public final class DBHelper { } static void createAttachmentTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + AttachmentColumns._ID + " integer primary key autoincrement, " + AttachmentColumns.FILENAME + " text, " + AttachmentColumns.MIME_TYPE + " text, " + AttachmentColumns.SIZE + " integer, " @@ -653,7 +654,7 @@ public final class DBHelper { } static void createQuickResponseTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + QuickResponseColumns._ID + " integer primary key autoincrement, " + QuickResponseColumns.TEXT + " text, " + QuickResponseColumns.ACCOUNT_KEY + " integer" + ");"; @@ -661,7 +662,7 @@ public final class DBHelper { } static void createBodyTable(SQLiteDatabase db) { - String s = " (" + EmailContent.RECORD_ID + " integer primary key autoincrement, " + String s = " (" + BodyColumns._ID + " integer primary key autoincrement, " + BodyColumns.MESSAGE_KEY + " integer, " + BodyColumns.HTML_CONTENT + " text, " + BodyColumns.TEXT_CONTENT + " text, " @@ -736,8 +737,8 @@ public final class DBHelper { static void recalculateMessageCount(SQLiteDatabase db) { db.execSQL("update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.MESSAGE_COUNT + "= (select count(*) from " + Message.TABLE_NAME + - " where " + Message.MAILBOX_KEY + " = " + - Mailbox.TABLE_NAME + "." + EmailContent.RECORD_ID + ")"); + " where " + MessageColumns.MAILBOX_KEY + " = " + + Mailbox.TABLE_NAME + "." + MailboxColumns._ID + ")"); } protected static class DatabaseHelper extends SQLiteOpenHelper { @@ -883,7 +884,7 @@ public final class DBHelper { if (oldVersion <= 13) { try { db.execSQL("alter table " + Message.TABLE_NAME - + " add column " + Message.SNIPPET + + " add column " + MessageColumns.SNIPPET +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process @@ -893,9 +894,9 @@ public final class DBHelper { if (oldVersion <= 14) { try { db.execSQL("alter table " + Message.DELETED_TABLE_NAME - + " add column " + Message.SNIPPET +" text" + ";"); + + " add column " + MessageColumns.SNIPPET +" text" + ";"); db.execSQL("alter table " + Message.UPDATED_TABLE_NAME - + " add column " + Message.SNIPPET +" text" + ";"); + + " add column " + MessageColumns.SNIPPET +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 14 to 15 " + e); @@ -904,13 +905,13 @@ public final class DBHelper { if (oldVersion <= 15) { try { db.execSQL("alter table " + Attachment.TABLE_NAME - + " add column " + Attachment.ACCOUNT_KEY +" integer" + ";"); + + " add column " + AttachmentColumns.ACCOUNT_KEY +" integer" + ";"); // Update all existing attachments to add the accountKey data db.execSQL("update " + Attachment.TABLE_NAME + " set " + - Attachment.ACCOUNT_KEY + "= (SELECT " + Message.TABLE_NAME + "." + - Message.ACCOUNT_KEY + " from " + Message.TABLE_NAME + " where " + - Message.TABLE_NAME + "." + Message.RECORD_ID + " = " + - Attachment.TABLE_NAME + "." + Attachment.MESSAGE_KEY + ")"); + AttachmentColumns.ACCOUNT_KEY + "= (SELECT " + Message.TABLE_NAME + + "." + MessageColumns.ACCOUNT_KEY + " from " + Message.TABLE_NAME + + " where " + Message.TABLE_NAME + "." + MessageColumns._ID + " = " + + Attachment.TABLE_NAME + "." + AttachmentColumns.MESSAGE_KEY + ")"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 15 to 16 " + e); @@ -931,7 +932,7 @@ public final class DBHelper { if (oldVersion <= 18) { try { db.execSQL("alter table " + Account.TABLE_NAME - + " add column " + Account.POLICY_KEY + " integer;"); + + " add column " + AccountColumns.POLICY_KEY + " integer;"); db.execSQL("drop trigger account_delete;"); db.execSQL(TRIGGER_ACCOUNT_DELETE); createPolicyTable(db); @@ -991,11 +992,11 @@ public final class DBHelper { if (oldVersion <= 26) { try { db.execSQL("alter table " + Message.TABLE_NAME - + " add column " + Message.PROTOCOL_SEARCH_INFO + " text;"); + + " add column " + MessageColumns.PROTOCOL_SEARCH_INFO + " text;"); db.execSQL("alter table " + Message.DELETED_TABLE_NAME - + " add column " + Message.PROTOCOL_SEARCH_INFO +" text" + ";"); + + " add column " + MessageColumns.PROTOCOL_SEARCH_INFO +" text" + ";"); db.execSQL("alter table " + Message.UPDATED_TABLE_NAME - + " add column " + Message.PROTOCOL_SEARCH_INFO +" text" + ";"); + + " add column " + MessageColumns.PROTOCOL_SEARCH_INFO +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 26 to 27 " + e); @@ -1044,16 +1045,16 @@ public final class DBHelper { if (oldVersion <= 32) { try { db.execSQL("alter table " + Attachment.TABLE_NAME - + " add column " + Attachment.UI_STATE + " integer;"); + + " add column " + AttachmentColumns.UI_STATE + " integer;"); db.execSQL("alter table " + Attachment.TABLE_NAME - + " add column " + Attachment.UI_DESTINATION + " integer;"); + + " add column " + AttachmentColumns.UI_DESTINATION + " integer;"); db.execSQL("alter table " + Attachment.TABLE_NAME - + " add column " + Attachment.UI_DOWNLOADED_SIZE + " integer;"); + + " add column " + AttachmentColumns.UI_DOWNLOADED_SIZE + " integer;"); // If we have a contentUri then the attachment is saved // uiDestination of 0 = "cache", so we don't have to set this - db.execSQL("update " + Attachment.TABLE_NAME + " set " + Attachment.UI_STATE + - "=" + UIProvider.AttachmentState.SAVED + " where " + - AttachmentColumns.CONTENT_URI + " is not null;"); + db.execSQL("update " + Attachment.TABLE_NAME + " set " + + AttachmentColumns.UI_STATE + "=" + UIProvider.AttachmentState.SAVED + + " where " + AttachmentColumns.CONTENT_URI + " is not null;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 32 to 33 " + e); @@ -1091,10 +1092,10 @@ public final class DBHelper { Mailbox.FLAG_SUPPORTS_SETTINGS + " where (" + MailboxColumns.FLAGS + "&" + Mailbox.FLAG_HOLDS_MAIL + ")!=0 and " + MailboxColumns.ACCOUNT_KEY + " IN (SELECT " + Account.TABLE_NAME + - "." + AccountColumns.ID + " from " + Account.TABLE_NAME + "," + + "." + AccountColumns._ID + " from " + Account.TABLE_NAME + "," + HostAuth.TABLE_NAME + " where " + Account.TABLE_NAME + "." + AccountColumns.HOST_AUTH_KEY_RECV + "=" + HostAuth.TABLE_NAME + "." + - HostAuthColumns.ID + " and " + HostAuthColumns.PROTOCOL + "='" + + HostAuthColumns._ID + " and " + HostAuthColumns.PROTOCOL + "='" + LEGACY_SCHEME_EAS + "')"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process @@ -1178,7 +1179,7 @@ public final class DBHelper { if (oldVersion <= 107) { try { db.execSQL("alter table " + Attachment.TABLE_NAME - + " add column " + Attachment.CACHED_FILE +" text" + ";"); + + " add column " + AttachmentColumns.CACHED_FILE +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v107 to v108", e); @@ -1274,10 +1275,11 @@ public final class DBHelper { if (oldVersion <= 117) { db.execSQL("update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.SYNC_INTERVAL + "=0 where " + MailboxColumns.ACCOUNT_KEY + " in (select " - + Account.TABLE_NAME + "." + AccountColumns.ID + " from " + + Account.TABLE_NAME + "." + AccountColumns._ID + " from " + Account.TABLE_NAME + " join " + HostAuth.TABLE_NAME + " where " - + HostAuth.TABLE_NAME + "." + HostAuth.ID + "=" + Account.TABLE_NAME + "." - + Account.HOST_AUTH_KEY_RECV + " and (" + HostAuth.TABLE_NAME + "." + + HostAuth.TABLE_NAME + "." + HostAuthColumns._ID + "=" + + Account.TABLE_NAME + "." + AccountColumns.HOST_AUTH_KEY_RECV + + " and (" + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='" + mContext.getString(R.string.protocol_legacy_imap) + "' or " + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='" @@ -1304,7 +1306,7 @@ public final class DBHelper { + "(" + SyncColumns.SERVER_ID + " not null and " + SyncColumns.SERVER_ID + "!='') and " + MessageColumns.MAILBOX_KEY + " in (select " - + MailboxColumns.ID + " from " + Mailbox.TABLE_NAME + " where " + + MailboxColumns._ID + " from " + Mailbox.TABLE_NAME + " where " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_DRAFTS + ")"); } @@ -1397,7 +1399,7 @@ public final class DBHelper { @SuppressWarnings("deprecation") static void convertPolicyFlagsToPolicyTable(SQLiteDatabase db) { Cursor c = db.query(Account.TABLE_NAME, - new String[] {EmailContent.RECORD_ID /*0*/, AccountColumns.SECURITY_FLAGS /*1*/}, + new String[] {BaseColumns._ID /*0*/, AccountColumns.SECURITY_FLAGS /*1*/}, AccountColumns.SECURITY_FLAGS + ">0", null, null, null, null); try { ContentValues cv = new ContentValues(); @@ -1408,8 +1410,8 @@ public final class DBHelper { long policyId = db.insert(Policy.TABLE_NAME, null, policy.toContentValues()); cv.put(AccountColumns.POLICY_KEY, policyId); cv.putNull(AccountColumns.SECURITY_FLAGS); - args[0] = Long.toString(c.getLong(0 /*RECORD_ID*/)); - db.update(Account.TABLE_NAME, cv, EmailContent.RECORD_ID + "=?", args); + args[0] = Long.toString(c.getLong(0 /*_ID*/)); + db.update(Account.TABLE_NAME, cv, BaseColumns._ID + "=?", args); } } finally { c.close(); @@ -1435,8 +1437,8 @@ public final class DBHelper { "UPDATE " + Mailbox.TABLE_NAME + " SET " + MailboxColumns.SERVER_ID + "=" + MailboxColumns.DISPLAY_NAME + " WHERE " - + Mailbox.TABLE_NAME + "." + MailboxColumns.ID + " IN ( SELECT " - + Mailbox.TABLE_NAME + "." + MailboxColumns.ID + " FROM " + + Mailbox.TABLE_NAME + "." + MailboxColumns._ID + " IN ( SELECT " + + Mailbox.TABLE_NAME + "." + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + "," + Account.TABLE_NAME + "," + HostAuth.TABLE_NAME + " WHERE " + "(" @@ -1444,9 +1446,9 @@ public final class DBHelper { + Mailbox.TABLE_NAME + "." + MailboxColumns.PARENT_KEY + "=0 " + ") AND " + Mailbox.TABLE_NAME + "." + MailboxColumns.ACCOUNT_KEY + "=" - + Account.TABLE_NAME + "." + AccountColumns.ID + " AND " + + Account.TABLE_NAME + "." + AccountColumns._ID + " AND " + Account.TABLE_NAME + "." + AccountColumns.HOST_AUTH_KEY_RECV + "=" - + HostAuth.TABLE_NAME + "." + HostAuthColumns.ID + " AND ( " + + HostAuth.TABLE_NAME + "." + HostAuthColumns._ID + " AND ( " + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='imap' OR " + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='pop3' ) )"); } catch (SQLException e) { @@ -1525,7 +1527,7 @@ public final class DBHelper { hostAuthArgs[0] = accountCursor.getString(V21_ACCOUNT_RECV); // Get the "receive" HostAuth for this account final Cursor hostAuthCursor = db.query(HostAuth.TABLE_NAME, - V21_HOSTAUTH_PROJECTION, HostAuth.RECORD_ID + "=?", hostAuthArgs, + V21_HOSTAUTH_PROJECTION, HostAuthColumns._ID + "=?", hostAuthArgs, null, null, null); try { if (hostAuthCursor.moveToFirst()) { @@ -1584,7 +1586,7 @@ public final class DBHelper { private static void upgradeFromVersion23ToVersion24(SQLiteDatabase db) { try { db.execSQL("alter table " + HostAuth.TABLE_NAME - + " add column " + HostAuth.CLIENT_CERT_ALIAS + " text;"); + + " add column " + HostAuthColumns.CLIENT_CERT_ALIAS + " text;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 23 to 24 " + e); @@ -1602,7 +1604,7 @@ public final class DBHelper { } private static final String[] V25_ACCOUNT_PROJECTION = - new String[] {AccountColumns.ID, AccountColumns.FLAGS, AccountColumns.HOST_AUTH_KEY_RECV}; + new String[] {AccountColumns._ID, AccountColumns.FLAGS, AccountColumns.HOST_AUTH_KEY_RECV}; private static final int V25_ACCOUNT_ID = 0; private static final int V25_ACCOUNT_FLAGS = 1; private static final int V25_ACCOUNT_RECV = 2; @@ -1623,7 +1625,7 @@ public final class DBHelper { hostAuthArgs[0] = accountCursor.getString(V25_ACCOUNT_RECV); // Get the "receive" HostAuth for this account Cursor hostAuthCursor = db.query(HostAuth.TABLE_NAME, - V25_HOSTAUTH_PROJECTION, HostAuth.RECORD_ID + "=?", hostAuthArgs, + V25_HOSTAUTH_PROJECTION, HostAuthColumns._ID + "=?", hostAuthArgs, null, null, null); try { if (hostAuthCursor.moveToFirst()) { @@ -1633,7 +1635,7 @@ public final class DBHelper { String id = accountCursor.getString(V25_ACCOUNT_ID); int flags = accountCursor.getInt(V25_ACCOUNT_FLAGS); cv.put(AccountColumns.FLAGS, flags | Account.FLAGS_SUPPORTS_SEARCH); - db.update(Account.TABLE_NAME, cv, Account.RECORD_ID + "=?", + db.update(Account.TABLE_NAME, cv, AccountColumns._ID + "=?", new String[] {id}); } } @@ -1651,13 +1653,19 @@ public final class DBHelper { } /** Upgrades the database from v29 to v30 by updating all address fields in Message */ - private static final int[] ADDRESS_COLUMN_INDICES = new int[] { - Message.CONTENT_BCC_LIST_COLUMN, Message.CONTENT_CC_LIST_COLUMN, - Message.CONTENT_FROM_LIST_COLUMN, Message.CONTENT_REPLY_TO_COLUMN, - Message.CONTENT_TO_LIST_COLUMN + private static final int[] ADDRESS_COLUMN_INDICES = { + Message.CONTENT_BCC_LIST_COLUMN, + Message.CONTENT_CC_LIST_COLUMN, + Message.CONTENT_FROM_LIST_COLUMN, + Message.CONTENT_REPLY_TO_COLUMN, + Message.CONTENT_TO_LIST_COLUMN }; - private static final String[] ADDRESS_COLUMN_NAMES = new String[] { - Message.BCC_LIST, Message.CC_LIST, Message.FROM_LIST, Message.REPLY_TO_LIST, Message.TO_LIST + private static final String[] ADDRESS_COLUMN_NAMES = { + MessageColumns.BCC_LIST, + MessageColumns.CC_LIST, + MessageColumns.FROM_LIST, + MessageColumns.REPLY_TO_LIST, + MessageColumns.TO_LIST }; private static void upgradeFromVersion29ToVersion30(SQLiteDatabase db) { @@ -1730,7 +1738,7 @@ public final class DBHelper { db.execSQL( "UPDATE " + Account.TABLE_NAME + " SET " + AccountColumns.FLAGS + "=" + AccountColumns.FLAGS + "|" + Long.toString(newFlags) + " WHERE " + - AccountColumns.ID + " IN (SELECT t1." + AccountColumns.ID + " FROM " + + AccountColumns._ID + " IN (SELECT t1." + AccountColumns._ID + " FROM " + Account.TABLE_NAME + " t1 INNER JOIN " + HostAuth.TABLE_NAME + " t2 ON t1." + AccountColumns.HOST_AUTH_KEY_RECV + "=t2._id WHERE t2." + HostAuthColumns.PROTOCOL + "='" + @@ -1757,7 +1765,7 @@ public final class DBHelper { // From 32->33 upgrade try { - db.execSQL("update " + Attachment.TABLE_NAME + " set " + Attachment.UI_STATE + + db.execSQL("update " + Attachment.TABLE_NAME + " set " + AttachmentColumns.UI_STATE + "=" + UIProvider.AttachmentState.SAVED + " where " + AttachmentColumns.CONTENT_URI + " is not null;"); } catch (SQLException e) { @@ -1785,10 +1793,10 @@ public final class DBHelper { Mailbox.FLAG_SUPPORTS_SETTINGS + " where (" + MailboxColumns.FLAGS + "&" + Mailbox.FLAG_HOLDS_MAIL + ")!=0 and " + MailboxColumns.ACCOUNT_KEY + " IN (SELECT " + Account.TABLE_NAME + - "." + AccountColumns.ID + " from " + Account.TABLE_NAME + "," + + "." + AccountColumns._ID + " from " + Account.TABLE_NAME + "," + HostAuth.TABLE_NAME + " where " + Account.TABLE_NAME + "." + AccountColumns.HOST_AUTH_KEY_RECV + "=" + HostAuth.TABLE_NAME + "." + - HostAuthColumns.ID + " and " + HostAuthColumns.PROTOCOL + "='" + + HostAuthColumns._ID + " and " + HostAuthColumns.PROTOCOL + "='" + LEGACY_SCHEME_EAS + "')"); } catch (SQLException e) { LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 35/36 to 37/100 " + e); diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index ba34bb8dd..c86d071b4 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -82,6 +82,7 @@ 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.QuickResponseColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.provider.Mailbox; @@ -182,11 +183,11 @@ public class EmailProvider extends ContentProvider { // Definitions for our queries looking for orphaned messages private static final String[] ORPHANS_PROJECTION - = new String[] {MessageColumns.ID, MessageColumns.MAILBOX_KEY}; + = new String[] {MessageColumns._ID, MessageColumns.MAILBOX_KEY}; private static final int ORPHANS_ID = 0; private static final int ORPHANS_MAILBOX_KEY = 1; - private static final String WHERE_ID = EmailContent.RECORD_ID + "=?"; + private static final String WHERE_ID = BaseColumns._ID + "=?"; private static final int ACCOUNT_BASE = 0; private static final int ACCOUNT = ACCOUNT_BASE; @@ -304,18 +305,18 @@ public class EmailProvider extends ContentProvider { */ private static final String UPDATED_MESSAGE_INSERT = "insert or ignore into " + Message.UPDATED_TABLE_NAME + " select * from " + Message.TABLE_NAME + " where " + - EmailContent.RECORD_ID + '='; + BaseColumns._ID + '='; private static final String UPDATED_MESSAGE_DELETE = "delete from " + - Message.UPDATED_TABLE_NAME + " where " + EmailContent.RECORD_ID + '='; + Message.UPDATED_TABLE_NAME + " where " + BaseColumns._ID + '='; private static final String DELETED_MESSAGE_INSERT = "insert or replace into " + Message.DELETED_TABLE_NAME + " select * from " + Message.TABLE_NAME + " where " + - EmailContent.RECORD_ID + '='; + BaseColumns._ID + '='; private static final String DELETE_ORPHAN_BODIES = "delete from " + Body.TABLE_NAME + " where " + BodyColumns.MESSAGE_KEY + " in " + "(select " + BodyColumns.MESSAGE_KEY + - " from " + Body.TABLE_NAME + " except select " + EmailContent.RECORD_ID + " from " + + " from " + Body.TABLE_NAME + " except select " + BaseColumns._ID + " from " + Message.TABLE_NAME + ')'; private static final String DELETE_BODY = "delete from " + Body.TABLE_NAME + @@ -428,7 +429,7 @@ public class EmailProvider extends ContentProvider { // mailbox.parentServerId=b.serverId and mailbox.parentServerId not null and // mailbox.accountKey=b.accountKey) db.execSQL("update " + Mailbox.TABLE_NAME + " set " + MailboxColumns.PARENT_KEY + "=" - + "(select " + Mailbox.ID + " from " + Mailbox.TABLE_NAME + " as b where " + + "(select " + Mailbox._ID + " from " + Mailbox.TABLE_NAME + " as b where " + Mailbox.TABLE_NAME + "." + MailboxColumns.PARENT_SERVER_ID + "=" + "b." + MailboxColumns.SERVER_ID + " and " + Mailbox.TABLE_NAME + "." + MailboxColumns.PARENT_SERVER_ID + " not null and " @@ -475,10 +476,10 @@ public class EmailProvider extends ContentProvider { deleteMessageOrphans(mDatabase, Message.DELETED_TABLE_NAME); // Delete orphaned mailboxes/messages/policies (account no longer exists) deleteUnlinked(mDatabase, Mailbox.TABLE_NAME, MailboxColumns.ACCOUNT_KEY, - AccountColumns.ID, Account.TABLE_NAME); + AccountColumns._ID, Account.TABLE_NAME); deleteUnlinked(mDatabase, Message.TABLE_NAME, MessageColumns.ACCOUNT_KEY, - AccountColumns.ID, Account.TABLE_NAME); - deleteUnlinked(mDatabase, Policy.TABLE_NAME, PolicyColumns.ID, + AccountColumns._ID, Account.TABLE_NAME); + deleteUnlinked(mDatabase, Policy.TABLE_NAME, PolicyColumns._ID, AccountColumns.POLICY_KEY, Account.TABLE_NAME); fixParentKeys(mDatabase); initUiProvider(); @@ -700,7 +701,8 @@ public class EmailProvider extends ContentProvider { // All attachments for the given message id = uri.getPathSegments().get(2); result = db.delete(tableName, - whereWith(Attachment.MESSAGE_KEY + "=" + id, selection), selectionArgs); + whereWith(AttachmentColumns.MESSAGE_KEY + "=" + id, selection), + selectionArgs); break; case BODY: @@ -853,11 +855,11 @@ public class EmailProvider extends ContentProvider { resultUri = ContentUris.withAppendedId(uri, longId); switch(match) { case MESSAGE: - final long mailboxId = values.getAsLong(Message.MAILBOX_KEY); + final long mailboxId = values.getAsLong(MessageColumns.MAILBOX_KEY); if (!uri.getBooleanQueryParameter(IS_UIPROVIDER, false)) { notifyUIConversationMailbox(mailboxId); } - notifyUIFolder(mailboxId, values.getAsLong(Message.ACCOUNT_KEY)); + notifyUIFolder(mailboxId, values.getAsLong(MessageColumns.ACCOUNT_KEY)); break; case MAILBOX: if (values.containsKey(MailboxColumns.TYPE)) { @@ -885,11 +887,11 @@ public class EmailProvider extends ContentProvider { throw new IllegalArgumentException("Unknown URL " + uri); case ATTACHMENT: int flags = 0; - if (values.containsKey(Attachment.FLAGS)) { - flags = values.getAsInteger(Attachment.FLAGS); + if (values.containsKey(AttachmentColumns.FLAGS)) { + flags = values.getAsInteger(AttachmentColumns.FLAGS); } // Report all new attachments to the download service - if (TextUtils.isEmpty(values.getAsString(Attachment.LOCATION))) { + if (TextUtils.isEmpty(values.getAsString(AttachmentColumns.LOCATION))) { LogUtils.w(TAG, new Throwable(), "attachment with blank location"); } mAttachmentService.attachmentChanged(getContext(), longId, flags); @@ -898,7 +900,7 @@ public class EmailProvider extends ContentProvider { break; case QUICK_RESPONSE_ACCOUNT_ID: longId = Long.parseLong(uri.getPathSegments().get(2)); - values.put(EmailContent.QuickResponseColumns.ACCOUNT_KEY, longId); + values.put(QuickResponseColumns.ACCOUNT_KEY, longId); return insert(QuickResponse.CONTENT_URI, values); case MAILBOX_ID: // This implies adding a message to a mailbox @@ -1102,7 +1104,7 @@ public class EmailProvider extends ContentProvider { sURIMatcher.addURI(EmailContent.AUTHORITY, "updatedMessage/#", UPDATED_MESSAGE_ID); CONTENT_VALUES_RESET_NEW_MESSAGE_COUNT = new ContentValues(); - CONTENT_VALUES_RESET_NEW_MESSAGE_COUNT.put(Account.NEW_MESSAGE_COUNT, 0); + CONTENT_VALUES_RESET_NEW_MESSAGE_COUNT.put(AccountColumns.NEW_MESSAGE_COUNT, 0); sURIMatcher.addURI(EmailContent.AUTHORITY, "policy", POLICY); sURIMatcher.addURI(EmailContent.AUTHORITY, "policy/#", POLICY_ID); @@ -1309,7 +1311,7 @@ public class EmailProvider extends ContentProvider { // All attachments for the given message id = uri.getPathSegments().get(2); c = db.query(Attachment.TABLE_NAME, projection, - whereWith(Attachment.MESSAGE_KEY + "=" + id, selection), + whereWith(AttachmentColumns.MESSAGE_KEY + "=" + id, selection), selectionArgs, null, null, sortOrder, limit); break; case QUICK_RESPONSE_ACCOUNT_ID: @@ -1380,7 +1382,7 @@ public class EmailProvider extends ContentProvider { */ private static HostAuth restoreHostAuth(SQLiteDatabase db, long id) { Cursor c = db.query(HostAuth.TABLE_NAME, HostAuth.CONTENT_PROJECTION, - HostAuth.RECORD_ID + "=?", new String[] {Long.toString(id)}, null, null, null); + HostAuthColumns._ID + "=?", new String[] {Long.toString(id)}, null, null, null); try { if (c.moveToFirst()) { HostAuth hostAuth = new HostAuth(); @@ -1532,8 +1534,10 @@ public class EmailProvider extends ContentProvider { + MessageChangeLogTable.ACCOUNT_KEY + "," + MessageChangeLogTable.STATUS + ","; private static final String MESSAGE_CHANGE_LOG_TABLE_VALUES_PREFIX = ") values (%s, " - + "(select " + Message.SERVER_ID + " from " + Message.TABLE_NAME + " where _id=%s)," - + "(select " + Message.ACCOUNT_KEY + " from " + Message.TABLE_NAME + " where _id=%s)," + + "(select " + MessageColumns.SERVER_ID + " from " + + Message.TABLE_NAME + " where _id=%s)," + + "(select " + MessageColumns.ACCOUNT_KEY + " from " + + Message.TABLE_NAME + " where _id=%s)," + MessageMove.STATUS_NONE_STRING + ","; /** @@ -1546,10 +1550,10 @@ public class EmailProvider extends ContentProvider { + MessageMove.SRC_FOLDER_KEY + "," + MessageMove.DST_FOLDER_KEY + "," + MessageMove.SRC_FOLDER_SERVER_ID + "," + MessageMove.DST_FOLDER_SERVER_ID + MESSAGE_CHANGE_LOG_TABLE_VALUES_PREFIX - + "(select " + Message.MAILBOX_KEY + " from " + Message.TABLE_NAME + " where _id=%s)," - + "%d," + + "(select " + MessageColumns.MAILBOX_KEY + + " from " + Message.TABLE_NAME + " where _id=%s)," + "%d," + "(select " + Mailbox.SERVER_ID + " from " + Mailbox.TABLE_NAME + " where _id=(select " - + Message.MAILBOX_KEY + " from " + Message.TABLE_NAME + " where _id=%s))," + + MessageColumns.MAILBOX_KEY + " from " + Message.TABLE_NAME + " where _id=%s))," + "(select " + Mailbox.SERVER_ID + " from " + Mailbox.TABLE_NAME + " where _id=%d))"; /** @@ -1574,10 +1578,10 @@ public class EmailProvider extends ContentProvider { + MessageStateChange.OLD_FLAG_READ + "," + MessageStateChange.NEW_FLAG_READ + "," + MessageStateChange.OLD_FLAG_FAVORITE + "," + MessageStateChange.NEW_FLAG_FAVORITE + MESSAGE_CHANGE_LOG_TABLE_VALUES_PREFIX - + "(select " + Message.FLAG_READ + " from " + Message.TABLE_NAME + " where _id=%s)," - + "%d," - + "(select " + Message.FLAG_FAVORITE + " from " + Message.TABLE_NAME + " where _id=%s)," - + "%d)"; + + "(select " + MessageColumns.FLAG_READ + + " from " + Message.TABLE_NAME + " where _id=%s)," + "%d," + + "(select " + MessageColumns.FLAG_FAVORITE + + " from " + Message.TABLE_NAME + " where _id=%s)," + "%d)"; private void addToMessageStateChange(final SQLiteDatabase db, final String messageId, final int newFlagRead, final int newFlagFavorite) { @@ -1597,14 +1601,14 @@ public class EmailProvider extends ContentProvider { // behavior; should go away when IMAP gets converted. private static final String GET_MESSAGE_DETAILS = "SELECT" + " h." + HostAuthColumns.PROTOCOL + "," - + " m." + Message.MAILBOX_KEY + "," - + " a." + AccountColumns.ID + + " m." + MessageColumns.MAILBOX_KEY + "," + + " a." + AccountColumns._ID + " FROM " + Message.TABLE_NAME + " AS m" + " INNER JOIN " + Account.TABLE_NAME + " AS a" - + " ON m." + MessageColumns.ACCOUNT_KEY + "=a." + AccountColumns.ID + + " ON m." + MessageColumns.ACCOUNT_KEY + "=a." + AccountColumns._ID + " INNER JOIN " + HostAuth.TABLE_NAME + " AS h" - + " ON a." + AccountColumns.HOST_AUTH_KEY_RECV + "=h." + HostAuthColumns.ID - + " WHERE m." + MessageColumns.ID + "=?"; + + " ON a." + AccountColumns.HOST_AUTH_KEY_RECV + "=h." + HostAuthColumns._ID + + " WHERE m." + MessageColumns._ID + "=?"; private static final int INDEX_PROTOCOL = 0; private static final int INDEX_MAILBOX_KEY = 1; private static final int INDEX_ACCOUNT_KEY = 2; @@ -1619,8 +1623,8 @@ public class EmailProvider extends ContentProvider { + " a." + AccountColumns.SYNC_KEY + " FROM " + Account.TABLE_NAME + " AS a" + " INNER JOIN " + HostAuth.TABLE_NAME + " AS h" - + " ON a." + AccountColumns.HOST_AUTH_KEY_RECV + "=h." + HostAuthColumns.ID - + " WHERE a." + AccountColumns.ID + "=?"; + + " ON a." + AccountColumns.HOST_AUTH_KEY_RECV + "=h." + HostAuthColumns._ID + + " WHERE a." + AccountColumns._ID + "=?"; private static final int INDEX_EMAIL_ADDRESS = 1; private static final int INDEX_SYNC_KEY = 2; @@ -1864,8 +1868,8 @@ public class EmailProvider extends ContentProvider { handleMessageUpdateNotifications(uri, id, values); } else if (match == ATTACHMENT_ID) { long attId = Integer.parseInt(id); - if (values.containsKey(Attachment.FLAGS)) { - int flags = values.getAsInteger(Attachment.FLAGS); + if (values.containsKey(AttachmentColumns.FLAGS)) { + int flags = values.getAsInteger(AttachmentColumns.FLAGS); mAttachmentService.attachmentChanged(context, attId, flags); } // Notify UI if necessary; there are only two columns we can change that @@ -1899,8 +1903,8 @@ public class EmailProvider extends ContentProvider { // is hokey at best. LogUtils.i(TAG, "Body Update to non-existent row, morphing to insert"); final ContentValues insertValues = new ContentValues(values); - insertValues.put(EmailContent.Body.MESSAGE_KEY, selectionArgs[0]); - insert(EmailContent.Body.CONTENT_URI, insertValues); + insertValues.put(BodyColumns.MESSAGE_KEY, selectionArgs[0]); + insert(Body.CONTENT_URI, insertValues); } break; case MESSAGE: @@ -1928,7 +1932,7 @@ public class EmailProvider extends ContentProvider { Long set = values.getAsLong(EmailContent.SET_COLUMN_NAME); if (set != null) { newMessageCount = new ContentValues(); - newMessageCount.put(Account.NEW_MESSAGE_COUNT, set); + newMessageCount.put(AccountColumns.NEW_MESSAGE_COUNT, set); } } result = db.update(tableName, newMessageCount, @@ -2045,7 +2049,7 @@ public class EmailProvider extends ContentProvider { case ATTACHMENTS_CACHED_FILE_ACCESS: // Parse the cache file path out from the uri final String cachedFilePath = - uri.getQueryParameter(EmailContent.Attachment.CACHED_FILE_QUERY_PARAM); + uri.getQueryParameter(Attachment.CACHED_FILE_QUERY_PARAM); if (cachedFilePath != null) { // clearCallingIdentity means that the download manager will @@ -2266,7 +2270,7 @@ public class EmailProvider extends ContentProvider { " END"; private static final String ACCOUNT_COLOR = - "@CASE (" + AccountColumns.ID + " - 1) % " + ACCOUNT_COLORS.length + + "@CASE (" + AccountColumns._ID + " - 1) % " + ACCOUNT_COLORS.length + " WHEN 0 THEN " + ACCOUNT_COLORS[0] + " WHEN 1 THEN " + ACCOUNT_COLORS[1] + " WHEN 2 THEN " + ACCOUNT_COLORS[2] + @@ -2285,7 +2289,7 @@ public class EmailProvider extends ContentProvider { private static ProjectionMap getMessageListMap() { if (sMessageListMap == null) { sMessageListMap = ProjectionMap.builder() - .add(BaseColumns._ID, MessageColumns.ID) + .add(BaseColumns._ID, MessageColumns._ID) .add(UIProvider.ConversationColumns.URI, uriWithId("uimessage")) .add(UIProvider.ConversationColumns.MESSAGE_LIST_URI, uriWithId("uimessage")) .add(UIProvider.ConversationColumns.SUBJECT, MessageColumns.SUBJECT) @@ -2339,36 +2343,34 @@ public class EmailProvider extends ContentProvider { private static ProjectionMap getMessageViewMap() { if (sMessageViewMap == null) { sMessageViewMap = ProjectionMap.builder() - .add(BaseColumns._ID, Message.TABLE_NAME + "." + EmailContent.MessageColumns.ID) + .add(BaseColumns._ID, Message.TABLE_NAME + "." + MessageColumns._ID) .add(UIProvider.MessageColumns.SERVER_ID, SyncColumns.SERVER_ID) .add(UIProvider.MessageColumns.URI, uriWithFQId("uimessage", Message.TABLE_NAME)) .add(UIProvider.MessageColumns.CONVERSATION_ID, uriWithFQId("uimessage", Message.TABLE_NAME)) - .add(UIProvider.MessageColumns.SUBJECT, EmailContent.MessageColumns.SUBJECT) - .add(UIProvider.MessageColumns.SNIPPET, EmailContent.MessageColumns.SNIPPET) - .add(UIProvider.MessageColumns.FROM, EmailContent.MessageColumns.FROM_LIST) - .add(UIProvider.MessageColumns.TO, EmailContent.MessageColumns.TO_LIST) - .add(UIProvider.MessageColumns.CC, EmailContent.MessageColumns.CC_LIST) - .add(UIProvider.MessageColumns.BCC, EmailContent.MessageColumns.BCC_LIST) - .add(UIProvider.MessageColumns.REPLY_TO, EmailContent.MessageColumns.REPLY_TO_LIST) - .add(UIProvider.MessageColumns.DATE_RECEIVED_MS, - EmailContent.MessageColumns.TIMESTAMP) - .add(UIProvider.MessageColumns.BODY_HTML, Body.HTML_CONTENT) - .add(UIProvider.MessageColumns.BODY_TEXT, Body.TEXT_CONTENT) + .add(UIProvider.MessageColumns.SUBJECT, MessageColumns.SUBJECT) + .add(UIProvider.MessageColumns.SNIPPET, MessageColumns.SNIPPET) + .add(UIProvider.MessageColumns.FROM, MessageColumns.FROM_LIST) + .add(UIProvider.MessageColumns.TO, MessageColumns.TO_LIST) + .add(UIProvider.MessageColumns.CC, MessageColumns.CC_LIST) + .add(UIProvider.MessageColumns.BCC, MessageColumns.BCC_LIST) + .add(UIProvider.MessageColumns.REPLY_TO, MessageColumns.REPLY_TO_LIST) + .add(UIProvider.MessageColumns.DATE_RECEIVED_MS, MessageColumns.TIMESTAMP) + .add(UIProvider.MessageColumns.BODY_HTML, BodyColumns.HTML_CONTENT) + .add(UIProvider.MessageColumns.BODY_TEXT, BodyColumns.TEXT_CONTENT) .add(UIProvider.MessageColumns.REF_MESSAGE_ID, "0") .add(UIProvider.MessageColumns.DRAFT_TYPE, NOT_A_DRAFT_STRING) .add(UIProvider.MessageColumns.APPEND_REF_MESSAGE_CONTENT, "0") - .add(UIProvider.MessageColumns.HAS_ATTACHMENTS, - EmailContent.MessageColumns.FLAG_ATTACHMENT) + .add(UIProvider.MessageColumns.HAS_ATTACHMENTS, MessageColumns.FLAG_ATTACHMENT) .add(UIProvider.MessageColumns.ATTACHMENT_LIST_URI, uriWithFQId("uiattachments", Message.TABLE_NAME)) .add(UIProvider.MessageColumns.MESSAGE_FLAGS, MESSAGE_FLAGS) .add(UIProvider.MessageColumns.DRAFT_TYPE, MESSAGE_DRAFT_TYPE) .add(UIProvider.MessageColumns.MESSAGE_ACCOUNT_URI, uriWithColumn("uiaccount", MessageColumns.ACCOUNT_KEY)) - .add(UIProvider.MessageColumns.STARRED, EmailContent.MessageColumns.FLAG_FAVORITE) - .add(UIProvider.MessageColumns.READ, EmailContent.MessageColumns.FLAG_READ) - .add(UIProvider.MessageColumns.SEEN, EmailContent.MessageColumns.FLAG_SEEN) + .add(UIProvider.MessageColumns.STARRED, MessageColumns.FLAG_FAVORITE) + .add(UIProvider.MessageColumns.READ, MessageColumns.FLAG_READ) + .add(UIProvider.MessageColumns.SEEN, MessageColumns.FLAG_SEEN) .add(UIProvider.MessageColumns.SPAM_WARNING_STRING, null) .add(UIProvider.MessageColumns.SPAM_WARNING_LEVEL, Integer.toString(UIProvider.SpamWarningLevel.NO_WARNING)) @@ -2431,7 +2433,7 @@ public class EmailProvider extends ContentProvider { private static ProjectionMap getFolderListMap() { if (sFolderListMap == null) { sFolderListMap = ProjectionMap.builder() - .add(BaseColumns._ID, MailboxColumns.ID) + .add(BaseColumns._ID, MailboxColumns._ID) .add(UIProvider.FolderColumns.PERSISTENT_ID, MailboxColumns.SERVER_ID) .add(UIProvider.FolderColumns.URI, uriWithId("uifolder")) .add(UIProvider.FolderColumns.NAME, "displayName") @@ -2462,7 +2464,7 @@ public class EmailProvider extends ContentProvider { "(SELECT group_concat(" + MessageColumns.FROM_LIST + ") FROM " + "(SELECT " + MessageColumns.FROM_LIST + " FROM " + Message.TABLE_NAME + " WHERE " + MessageColumns.MAILBOX_KEY + "=" + Mailbox.TABLE_NAME + "." + - MailboxColumns.ID + " AND " + MessageColumns.FLAG_READ + "=0" + + MailboxColumns._ID + " AND " + MessageColumns.FLAG_READ + "=0" + " GROUP BY " + MessageColumns.FROM_LIST + " ORDER BY " + MessageColumns.TIMESTAMP + " DESC))") .build(); @@ -2478,7 +2480,7 @@ public class EmailProvider extends ContentProvider { private static ProjectionMap getAccountListMap(Context context) { if (sAccountListMap == null) { final ProjectionMap.Builder builder = ProjectionMap.builder() - .add(BaseColumns._ID, AccountColumns.ID) + .add(BaseColumns._ID, AccountColumns._ID) .add(UIProvider.AccountColumns.FOLDER_LIST_URI, uriWithId("uifolders")) .add(UIProvider.AccountColumns.FULL_FOLDER_LIST_URI, uriWithId("uifullfolders")) .add(UIProvider.AccountColumns.ALL_FOLDER_LIST_URI, uriWithId("uiallfolders")) @@ -2532,11 +2534,10 @@ public class EmailProvider extends ContentProvider { private static ProjectionMap getQuickResponseMap() { if (sQuickResponseMap == null) { sQuickResponseMap = ProjectionMap.builder() - .add(UIProvider.QuickResponseColumns.TEXT, - EmailContent.QuickResponseColumns.TEXT) + .add(UIProvider.QuickResponseColumns.TEXT, QuickResponseColumns.TEXT) .add(UIProvider.QuickResponseColumns.URI, "'" + combinedUriString("quickresponse", "") + "'||" - + EmailContent.QuickResponseColumns.ID) + + QuickResponseColumns._ID) .build(); } return sQuickResponseMap; @@ -2635,7 +2636,7 @@ public class EmailProvider extends ContentProvider { * @return a Uri string */ private static String uriWithId(String type) { - return uriWithColumn(type, EmailContent.RECORD_ID); + return uriWithColumn(type, BaseColumns._ID); } /** @@ -2768,9 +2769,10 @@ public class EmailProvider extends ContentProvider { values.put(UIProvider.MessageColumns.ATTACHMENT_LIST_URI, attachmentListUri.toString()); } StringBuilder sb = genSelect(getMessageViewMap(), uiProjection, values); - sb.append(" FROM " + Message.TABLE_NAME + " LEFT JOIN " + Body.TABLE_NAME + " ON " + - Body.MESSAGE_KEY + "=" + Message.TABLE_NAME + "." + Message.RECORD_ID + " WHERE " + - Message.TABLE_NAME + "." + Message.RECORD_ID + "=?"); + sb.append(" FROM " + Message.TABLE_NAME + " LEFT JOIN " + Body.TABLE_NAME + + " ON " + BodyColumns.MESSAGE_KEY + "=" + Message.TABLE_NAME + "." + + MessageColumns._ID + + " WHERE " + Message.TABLE_NAME + "." + MessageColumns._ID + "=?"); String sql = sb.toString(); return new MessageQuery(sql, attachmentJson); } @@ -2796,7 +2798,7 @@ public class EmailProvider extends ContentProvider { appendConversationInfoColumns(sb); sb.append(" FROM " + Message.TABLE_NAME + " WHERE " + Message.FLAG_LOADED_SELECTION + " AND " + - Message.MAILBOX_KEY + "=? "); + MessageColumns.MAILBOX_KEY + "=? "); if (unseenOnly) { sb.append("AND ").append(MessageColumns.FLAG_SEEN).append(" = 0 "); sb.append("AND ").append(MessageColumns.FLAG_READ).append(" = 0 "); @@ -2839,7 +2841,7 @@ public class EmailProvider extends ContentProvider { } switch (getVirtualMailboxType(mailboxId)) { case Mailbox.TYPE_INBOX: - sb.append(MessageColumns.MAILBOX_KEY + " IN (SELECT " + MailboxColumns.ID + + sb.append(MessageColumns.MAILBOX_KEY + " IN (SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_INBOX + ")"); break; @@ -2848,7 +2850,7 @@ public class EmailProvider extends ContentProvider { break; case Mailbox.TYPE_UNREAD: sb.append(MessageColumns.FLAG_READ + "=0 AND " + MessageColumns.MAILBOX_KEY + - " NOT IN (SELECT " + MailboxColumns.ID + " FROM " + Mailbox.TABLE_NAME + + " NOT IN (SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_TRASH + ")"); break; default: @@ -2866,7 +2868,7 @@ public class EmailProvider extends ContentProvider { */ private static String genQueryConversation(String[] uiProjection) { StringBuilder sb = genSelect(getMessageListMap(), uiProjection); - sb.append(" FROM " + Message.TABLE_NAME + " WHERE " + Message.RECORD_ID + "=?"); + sb.append(" FROM " + Message.TABLE_NAME + " WHERE " + MessageColumns._ID + "=?"); return sb.toString(); } @@ -3026,7 +3028,7 @@ public class EmailProvider extends ContentProvider { } } StringBuilder sb = genSelect(getFolderListMap(), uiProjection, values); - sb.append(" FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.ID + "=?"); + sb.append(" FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns._ID + "=?"); return sb.toString(); } @@ -3288,7 +3290,7 @@ public class EmailProvider extends ContentProvider { } final StringBuilder sb = genSelect(getAccountListMap(getContext()), uiProjection, values); - sb.append(" FROM " + Account.TABLE_NAME + " WHERE " + AccountColumns.ID + "=?"); + sb.append(" FROM " + Account.TABLE_NAME + " WHERE " + AccountColumns._ID + "=?"); return sb.toString(); } @@ -3523,7 +3525,7 @@ public class EmailProvider extends ContentProvider { } else if (column.equals(UIProvider.FolderColumns.UNREAD_COUNT)) { if (mailboxType == Mailbox.TYPE_INBOX && accountId == COMBINED_ACCOUNT_ID) { final int unreadCount = EmailContent.count(getContext(), Message.CONTENT_URI, - MessageColumns.MAILBOX_KEY + " IN (SELECT " + MailboxColumns.ID + MessageColumns.MAILBOX_KEY + " IN (SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_INBOX + ") AND " + MessageColumns.FLAG_READ + "=0", null); @@ -3540,7 +3542,7 @@ public class EmailProvider extends ContentProvider { } final int unreadCount = EmailContent.count(getContext(), Message.CONTENT_URI, accountKeyClause + MessageColumns.FLAG_READ + "=0 AND " - + MessageColumns.MAILBOX_KEY + " NOT IN (SELECT " + MailboxColumns.ID + + MessageColumns.MAILBOX_KEY + " NOT IN (SELECT " + MailboxColumns._ID + " FROM " + Mailbox.TABLE_NAME + " WHERE " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_TRASH + ")", whereArgs); values[i] = unreadCount; @@ -3628,7 +3630,7 @@ public class EmailProvider extends ContentProvider { final SQLiteDatabase db = getDatabase(context); final StringBuilder sb = genSelect(getQuickResponseMap(), uiProjection); sb.append(" FROM " + QuickResponse.TABLE_NAME); - sb.append(" WHERE " + QuickResponse.ID + "=?"); + sb.append(" WHERE " + QuickResponse._ID + "=?"); final String query = sb.toString(); return db.rawQuery(query, new String[] {id}); } @@ -3706,7 +3708,7 @@ public class EmailProvider extends ContentProvider { sb.append(" FROM ") .append(Attachment.TABLE_NAME) .append(" WHERE ") - .append(AttachmentColumns.ID) + .append(AttachmentColumns._ID) .append(" =? "); return sb.toString(); } @@ -4522,7 +4524,8 @@ public class EmailProvider extends ContentProvider { .build()); // Delete the body ops.add(ContentProviderOperation.newDelete(Body.CONTENT_URI) - .withSelection(Body.MESSAGE_KEY + "=?", new String[] {Long.toString(msg.mId)}) + .withSelection(BodyColumns.MESSAGE_KEY + "=?", + new String[] {Long.toString(msg.mId)}) .build()); // Add the ops for the message, atts, and body msg.addSaveOps(ops); @@ -4553,7 +4556,7 @@ public class EmailProvider extends ContentProvider { flags |= Message.FLAG_REPLIED_TO; break; } - cv.put(Message.FLAGS, flags); + cv.put(MessageColumns.FLAGS, flags); context.getContentResolver().update(ContentUris.withAppendedId( Message.CONTENT_URI, originalMsgId), cv, null, null); } @@ -5017,7 +5020,7 @@ public class EmailProvider extends ContentProvider { // Find the account ID (needed in a few calls) final Cursor mailboxCursor = db.query( Mailbox.TABLE_NAME, new String[] { MailboxColumns.ACCOUNT_KEY }, - Mailbox.ID + "=" + mailboxId, null, null, null, null); + Mailbox._ID + "=" + mailboxId, null, null, null, null); if (mailboxCursor == null || !mailboxCursor.moveToFirst()) { LogUtils.wtf(LogUtils.TAG, "Null or empty cursor when trying to purge mailbox %d", mailboxId); @@ -5028,7 +5031,7 @@ public class EmailProvider extends ContentProvider { // Find all the messages in the mailbox final String[] messageProjection = - new String[] { MessageColumns.ID }; + new String[] { MessageColumns._ID }; final String messageWhere = MessageColumns.MAILBOX_KEY + "=" + mailboxId; final Cursor messageCursor = db.query(Message.TABLE_NAME, messageProjection, messageWhere, null, null, null, null); @@ -5037,7 +5040,7 @@ public class EmailProvider extends ContentProvider { // Kill them with fire while (messageCursor != null && messageCursor.moveToNext()) { final long messageId = messageCursor.getLong(messageCursor.getColumnIndex( - MessageColumns.ID)); + MessageColumns._ID)); AttachmentUtilities.deleteAllAttachmentFiles(context, accountId, messageId); deletedCount += context.getContentResolver().delete( ContentUris.withAppendedId(Message.SYNCED_CONTENT_URI, messageId), null, null); @@ -5487,7 +5490,7 @@ public class EmailProvider extends ContentProvider { // Delete existing contents of search mailbox ContentResolver resolver = context.getContentResolver(); - resolver.delete(Message.CONTENT_URI, Message.MAILBOX_KEY + "=" + searchMailboxId, + resolver.delete(Message.CONTENT_URI, MessageColumns.MAILBOX_KEY + "=" + searchMailboxId, null); final ContentValues cv = new ContentValues(1); // For now, use the actual query as the name of the mailbox @@ -5611,7 +5614,7 @@ public class EmailProvider extends ContentProvider { // Delete account sync key. final ContentValues cv = new ContentValues(); - cv.putNull(Account.SYNC_KEY); + cv.putNull(AccountColumns.SYNC_KEY); resolver.update(Account.CONTENT_URI, cv, Account.ID_SELECTION, accountIdArgs); // Delete PIM data (contacts, calendar), stop syncs, etc. if applicable diff --git a/src/com/android/email/service/AttachmentDownloadService.java b/src/com/android/email/service/AttachmentDownloadService.java index 2130cb643..5a7c4ac20 100644 --- a/src/com/android/email/service/AttachmentDownloadService.java +++ b/src/com/android/email/service/AttachmentDownloadService.java @@ -278,8 +278,8 @@ public class AttachmentDownloadService extends Service implements Runnable { private void markAttachmentAsFailed(final Attachment att) { final ContentValues cv = new ContentValues(); final int flags = Attachment.FLAG_DOWNLOAD_FORWARD | Attachment.FLAG_DOWNLOAD_USER_REQUEST; - cv.put(Attachment.FLAGS, att.mFlags &= ~flags); - cv.put(Attachment.UI_STATE, AttachmentState.FAILED); + cv.put(AttachmentColumns.FLAGS, att.mFlags &= ~flags); + cv.put(AttachmentColumns.UI_STATE, AttachmentState.FAILED); att.update(mContext, cv); } @@ -425,7 +425,7 @@ public class AttachmentDownloadService extends Service implements Runnable { Cursor c = mContext.getContentResolver().query(lookupUri, Attachment.CONTENT_PROJECTION, EmailContent.Attachment.PRECACHE_INBOX_SELECTION, - null, Attachment.RECORD_ID + " DESC"); + null, AttachmentColumns._ID + " DESC"); File cacheDir = mContext.getCacheDir(); try { while (c.moveToNext()) { @@ -736,8 +736,8 @@ public class AttachmentDownloadService extends Service implements Runnable { ContentValues cv = new ContentValues(); int flags = Attachment.FLAG_DOWNLOAD_FORWARD | Attachment.FLAG_DOWNLOAD_USER_REQUEST; - cv.put(Attachment.FLAGS, attachment.mFlags &= ~flags); - cv.put(Attachment.UI_STATE, AttachmentState.SAVED); + cv.put(AttachmentColumns.FLAGS, attachment.mFlags &= ~flags); + cv.put(AttachmentColumns.UI_STATE, AttachmentState.SAVED); attachment.update(mContext, cv); } } @@ -1001,7 +1001,7 @@ public class AttachmentDownloadService extends Service implements Runnable { // the queue int mask = Attachment.FLAG_DOWNLOAD_FORWARD | Attachment.FLAG_DOWNLOAD_USER_REQUEST; Cursor c = getContentResolver().query(Attachment.CONTENT_URI, - EmailContent.ID_PROJECTION, "(" + Attachment.FLAGS + " & ?) != 0", + EmailContent.ID_PROJECTION, "(" + AttachmentColumns.FLAGS + " & ?) != 0", new String[] {Integer.toString(mask)}, null); try { LogUtils.d(TAG, "Count: " + c.getCount()); @@ -1060,7 +1060,7 @@ public class AttachmentDownloadService extends Service implements Runnable { sRunningService = this; } if (intent != null && intent.hasExtra(EXTRA_ATTACHMENT)) { - Attachment att = (Attachment)intent.getParcelableExtra(EXTRA_ATTACHMENT); + Attachment att = intent.getParcelableExtra(EXTRA_ATTACHMENT); onChange(att); } return Service.START_STICKY; diff --git a/src/com/android/email/service/EmailServiceStub.java b/src/com/android/email/service/EmailServiceStub.java index 93e7a2306..cc7a3bfbe 100644 --- a/src/com/android/email/service/EmailServiceStub.java +++ b/src/com/android/email/service/EmailServiceStub.java @@ -77,8 +77,8 @@ public abstract class EmailServiceStub extends IEmailService.Stub implements IEm private static final int MAILBOX_COLUMN_TYPE = 2; /** Small projection for just the columns required for a sync. */ - private static final String[] MAILBOX_PROJECTION = new String[] { - MailboxColumns.ID, + private static final String[] MAILBOX_PROJECTION = { + MailboxColumns._ID, MailboxColumns.SERVER_ID, MailboxColumns.TYPE, }; @@ -418,7 +418,7 @@ public abstract class EmailServiceStub extends IEmailService.Stub implements IEm final ContentResolver resolver = context.getContentResolver(); final Cursor c = resolver.query(EmailContent.Message.CONTENT_URI, EmailContent.Message.ID_COLUMN_PROJECTION, - EmailContent.Message.MAILBOX_KEY + "=?", new String[] { Long.toString(outboxId) }, + MessageColumns.MAILBOX_KEY + "=?", new String[] { Long.toString(outboxId) }, null); try { // 2. exit early diff --git a/src/com/android/email/service/EmailServiceUtils.java b/src/com/android/email/service/EmailServiceUtils.java index a162d2e92..ecf233b34 100644 --- a/src/com/android/email/service/EmailServiceUtils.java +++ b/src/com/android/email/service/EmailServiceUtils.java @@ -51,6 +51,7 @@ import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.AccountColumns; +import com.android.emailcommon.provider.EmailContent.HostAuthColumns; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.service.IEmailService; @@ -337,7 +338,7 @@ public class EmailServiceUtils { // Change the HostAuth to reference the new protocol; this has to be done before // trying to create the AccountManager account (below) final ContentValues hostValues = new ContentValues(); - hostValues.put(HostAuth.PROTOCOL, newProtocol); + hostValues.put(HostAuthColumns.PROTOCOL, newProtocol); resolver.update(ContentUris.withAppendedId(HostAuth.CONTENT_URI, hostAuth.mId), hostValues, null, null); LogUtils.w(Logging.LOG_TAG, "Updated HostAuths"); diff --git a/src/com/android/email/service/ImapService.java b/src/com/android/email/service/ImapService.java index 9ed576f65..d1444d1ad 100644 --- a/src/com/android/email/service/ImapService.java +++ b/src/com/android/email/service/ImapService.java @@ -204,10 +204,14 @@ public class ImapService extends Service { private static final int COLUMN_SERVER_ID = 4; private static final int COLUMN_FLAGS = 5; private static final int COLUMN_TIMESTAMP = 6; - private static final String[] PROJECTION = new String[] { - EmailContent.RECORD_ID, MessageColumns.FLAG_READ, MessageColumns.FLAG_FAVORITE, - MessageColumns.FLAG_LOADED, SyncColumns.SERVER_ID, MessageColumns.FLAGS, - MessageColumns.TIMESTAMP + private static final String[] PROJECTION = { + MessageColumns._ID, + MessageColumns.FLAG_READ, + MessageColumns.FLAG_FAVORITE, + MessageColumns.FLAG_LOADED, + SyncColumns.SERVER_ID, + MessageColumns.FLAGS, + MessageColumns.TIMESTAMP }; final long mId; @@ -887,9 +891,9 @@ public class ImapService extends Service { // First handle the "new" messages (serverId == null) Cursor upsyncs1 = resolver.query(EmailContent.Message.CONTENT_URI, EmailContent.Message.ID_PROJECTION, - EmailContent.Message.MAILBOX_KEY + "=?" - + " and (" + EmailContent.Message.SERVER_ID + " is null" - + " or " + EmailContent.Message.SERVER_ID + "=''" + ")", + MessageColumns.MAILBOX_KEY + "=?" + + " and (" + MessageColumns.SERVER_ID + " is null" + + " or " + MessageColumns.SERVER_ID + "=''" + ")", mailboxKeyArgs, null); try { @@ -1141,7 +1145,7 @@ public class ImapService extends Service { @Override public void onMessageUidChange(Message message, String newUid) { ContentValues cv = new ContentValues(); - cv.put(EmailContent.Message.SERVER_ID, newUid); + cv.put(MessageColumns.SERVER_ID, newUid); // We only have one message, so, any updates _must_ be for it. Otherwise, // we'd have to cycle through to find the one with the same server ID. context.getContentResolver().update(ContentUris.withAppendedId( @@ -1239,7 +1243,7 @@ public class ImapService extends Service { // update the UID in the local trash folder, because some stores will // have to change it when copying to remoteTrashFolder ContentValues cv = new ContentValues(); - cv.put(EmailContent.Message.SERVER_ID, newUid); + cv.put(MessageColumns.SERVER_ID, newUid); context.getContentResolver().update(newMessage.getUri(), cv, null, null); } @@ -1425,8 +1429,8 @@ public class ImapService extends Service { resolver.delete(uri, null, null); } else if (updateMessage) { ContentValues cv = new ContentValues(); - cv.put(EmailContent.Message.SERVER_ID, message.mServerId); - cv.put(EmailContent.Message.SERVER_TIMESTAMP, message.mServerTimeStamp); + cv.put(MessageColumns.SERVER_ID, message.mServerId); + cv.put(MessageColumns.SERVER_TIMESTAMP, message.mServerTimeStamp); resolver.update(uri, cv, null, null); } } diff --git a/src/com/android/email/service/PopImapSyncAdapterService.java b/src/com/android/email/service/PopImapSyncAdapterService.java index e07a6ed31..4fae4d0a9 100644 --- a/src/com/android/email/service/PopImapSyncAdapterService.java +++ b/src/com/android/email/service/PopImapSyncAdapterService.java @@ -37,6 +37,7 @@ import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.AccountColumns; 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.EmailServiceProxy; import com.android.emailcommon.service.EmailServiceStatus; @@ -112,7 +113,7 @@ public class PopImapSyncAdapterService extends Service { !loadsFromServer(context, mailbox, protocol)) { // This is an update to a message in a non-syncing mailbox; delete this from the // updates table and return - resolver.delete(Message.UPDATED_CONTENT_URI, Message.MAILBOX_KEY + "=?", + resolver.delete(Message.UPDATED_CONTENT_URI, MessageColumns.MAILBOX_KEY + "=?", new String[] {Long.toString(mailbox.mId)}); return; } @@ -194,8 +195,8 @@ public class PopImapSyncAdapterService extends Service { // See if any boxes have mail... ArrayList<Long> mailboxesToUpdate; Cursor updatesCursor = provider.query(Message.UPDATED_CONTENT_URI, - new String[] {Message.MAILBOX_KEY}, - Message.ACCOUNT_KEY + "=?", + new String[] {MessageColumns.MAILBOX_KEY}, + MessageColumns.ACCOUNT_KEY + "=?", new String[] {Long.toString(acct.mId)}, null); try { diff --git a/tests/src/com/android/email/provider/ProviderTests.java b/tests/src/com/android/email/provider/ProviderTests.java index 4b63f89a5..5ba761a7d 100644 --- a/tests/src/com/android/email/provider/ProviderTests.java +++ b/tests/src/com/android/email/provider/ProviderTests.java @@ -416,7 +416,7 @@ public class ProviderTests extends ProviderTestCase2<EmailProvider> { Cursor c = null; try { c = mMockContext.getContentResolver().query(EmailContent.Body.CONTENT_URI, - EmailContent.Body.CONTENT_PROJECTION, EmailContent.Body.MESSAGE_KEY + "=?", + EmailContent.Body.CONTENT_PROJECTION, BodyColumns.MESSAGE_KEY + "=?", new String[] {String.valueOf(messageId)}, null); int numBodies = c.getCount(); assertTrue("at most one body", numBodies < 2); @@ -2432,10 +2432,10 @@ public class ProviderTests extends ProviderTestCase2<EmailProvider> { ContentCache.invalidateAllCaches(); // Delete orphaned mailboxes/messages/policies EmailProvider.deleteUnlinked(db, Mailbox.TABLE_NAME, MailboxColumns.ACCOUNT_KEY, - AccountColumns.ID, Account.TABLE_NAME); + AccountColumns._ID, Account.TABLE_NAME); EmailProvider.deleteUnlinked(db, Message.TABLE_NAME, MessageColumns.ACCOUNT_KEY, - AccountColumns.ID, Account.TABLE_NAME); - EmailProvider.deleteUnlinked(db, Policy.TABLE_NAME, PolicyColumns.ID, + AccountColumns._ID, Account.TABLE_NAME); + EmailProvider.deleteUnlinked(db, Policy.TABLE_NAME, PolicyColumns._ID, AccountColumns.POLICY_KEY, Account.TABLE_NAME); // Make sure the orphaned mailboxes are gone |