diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index 5cb2d31d0..2a3b0eb06 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -1042,7 +1042,12 @@ public class EmailProvider extends ContentProvider { Log.v(TAG, "EmailProvider.insert: uri=" + uri + ", match is " + match); } - removeAutoColumnsFromContentValues(match, values); + // We do NOT allow setting of unreadCount/messageCount via the provider + // These columns are maintained via triggers + if (match == MAILBOX_ID || match == MAILBOX) { + values.put(MailboxColumns.UNREAD_COUNT, 0); + values.put(MailboxColumns.MESSAGE_COUNT, 0); + } Uri resultUri = null; @@ -1261,7 +1266,12 @@ public class EmailProvider extends ContentProvider { Log.v(TAG, "EmailProvider.update: uri=" + uri + ", match is " + match); } - removeAutoColumnsFromContentValues(match, values); + // We do NOT allow setting of unreadCount/messageCount via the provider + // These columns are maintained via triggers + if (match == MAILBOX_ID || match == MAILBOX) { + values.remove(MailboxColumns.UNREAD_COUNT); + values.remove(MailboxColumns.MESSAGE_COUNT); + } String id; try { @@ -1344,15 +1354,6 @@ public class EmailProvider extends ContentProvider { return result; } - private static void removeAutoColumnsFromContentValues(int match, ContentValues values) { - // We do NOT allow setting of unreadCount/messageCount via the provider - // These columns are maintained via triggers - if (match == MAILBOX_ID || match == MAILBOX) { - values.remove(MailboxColumns.UNREAD_COUNT); - values.remove(MailboxColumns.MESSAGE_COUNT); - } - } - /* (non-Javadoc) * @see android.content.ContentProvider#applyBatch(android.content.ContentProviderOperation) */ diff --git a/tests/src/com/android/email/provider/ProviderTests.java b/tests/src/com/android/email/provider/ProviderTests.java index c1289cdc2..4704afc8b 100644 --- a/tests/src/com/android/email/provider/ProviderTests.java +++ b/tests/src/com/android/email/provider/ProviderTests.java @@ -1849,7 +1849,9 @@ public class ProviderTests extends ProviderTestCase2 { ContentValues values = new ContentValues(); values.put(MailboxColumns.MESSAGE_COUNT, -1); - getProvider().update(Mailbox.CONTENT_URI, values, null, null); + // EmailProvider.update() doesn't allow updating messageCount, so directly use the DB. + SQLiteDatabase db = getProvider().getDatabase(mMockContext); + db.update(Mailbox.TABLE_NAME, values, null, null); } /**