Clear out erroneous sync values for IMAP mailboxes on upgrade
b/10695945 Change-Id: Ic68c9ef0baa25eae40631184cf0322ff26c9e5ab
This commit is contained in:
parent
1290f376c0
commit
e54d6957db
@ -153,8 +153,9 @@ public final class DBHelper {
|
|||||||
// Version 115: Add pingDuration column
|
// Version 115: Add pingDuration column
|
||||||
// Version 116: Add MessageMove & MessageStateChange tables.
|
// Version 116: Add MessageMove & MessageStateChange tables.
|
||||||
// Version 117: Add trigger to delete duplicate messages on sync.
|
// Version 117: Add trigger to delete duplicate messages on sync.
|
||||||
|
// Version 118: Set syncInterval to 0 for all IMAP mailboxes
|
||||||
|
|
||||||
public static final int DATABASE_VERSION = 117;
|
public static final int DATABASE_VERSION = 118;
|
||||||
|
|
||||||
// Any changes to the database format *must* include update-in-place code.
|
// Any changes to the database format *must* include update-in-place code.
|
||||||
// Original version: 2
|
// Original version: 2
|
||||||
@ -733,6 +734,7 @@ public final class DBHelper {
|
|||||||
LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v5 to v6", e);
|
LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v5 to v6", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// TODO: Change all these to strict inequalities
|
||||||
if (oldVersion <= 6) {
|
if (oldVersion <= 6) {
|
||||||
// Use the newer mailbox_delete trigger
|
// Use the newer mailbox_delete trigger
|
||||||
db.execSQL("drop trigger mailbox_delete;");
|
db.execSQL("drop trigger mailbox_delete;");
|
||||||
@ -1187,9 +1189,28 @@ public final class DBHelper {
|
|||||||
createMessageStateChangeTable(db);
|
createMessageStateChangeTable(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldVersion < 117) {
|
if (oldVersion <= 116) {
|
||||||
createDeleteDuplicateMessagesTrigger(db);
|
createDeleteDuplicateMessagesTrigger(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This statement changes the syncInterval column to 0 for all IMAP mailboxes.
|
||||||
|
* It does this by matching mailboxes against all account IDs whose receive auth is
|
||||||
|
* either R.string.protocol_legacy_imap, R.string.protocol_imap or "imap"
|
||||||
|
*/
|
||||||
|
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 + " join " + HostAuth.TABLE_NAME + " where "
|
||||||
|
+ HostAuth.TABLE_NAME + "." + HostAuth.ID + "=" + Account.TABLE_NAME + "."
|
||||||
|
+ Account.HOST_AUTH_KEY_RECV + " and (" + HostAuth.TABLE_NAME + "."
|
||||||
|
+ HostAuthColumns.PROTOCOL + "='"
|
||||||
|
+ mContext.getString(R.string.protocol_legacy_imap) + "' or "
|
||||||
|
+ HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='"
|
||||||
|
+ mContext.getString(R.string.protocol_imap) + "' or "
|
||||||
|
+ HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='imap'));");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user