Move archived column from pdu/sms to threads (3/4)
Add new update logic to change threads' archived column value
Change-Id: I24cb9b163471c1daebb767aff342fe588b8cf249
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index b79e36a..a470bb1 100644
--- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
+++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
@@ -215,7 +215,7 @@
private static boolean sFakeLowStorageTest = false; // for testing only
static final String DATABASE_NAME = "mmssms.db";
- static final int DATABASE_VERSION = 59;
+ static final int DATABASE_VERSION = 60;
private final Context mContext;
private LowStorageMonitor mLowStorageMonitor;
@@ -594,7 +594,6 @@
Mms.LOCKED + " INTEGER DEFAULT 0," +
Mms.SUB_ID + " INTEGER DEFAULT -1, " +
Mms.SEEN + " INTEGER DEFAULT 0," +
- Mms.ARCHIVED + " INTEGER DEFAULT 0," +
Mms.CREATOR + " TEXT," +
Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
");");
@@ -840,7 +839,6 @@
"locked INTEGER DEFAULT 0," +
"sub_id INTEGER DEFAULT -1, " +
"error_code INTEGER DEFAULT 0," +
- "archived INTEGER DEFAULT 0," +
"creator TEXT," +
"seen INTEGER DEFAULT 0" +
");");
@@ -908,6 +906,7 @@
Threads.SNIPPET + " TEXT," +
Threads.SNIPPET_CHARSET + " INTEGER DEFAULT 0," +
Threads.READ + " INTEGER DEFAULT 1," +
+ Threads.ARCHIVED + " INTEGER DEFAULT 0," +
Threads.TYPE + " INTEGER DEFAULT 0," +
Threads.ERROR + " INTEGER DEFAULT 0," +
Threads.HAS_ATTACHMENT + " INTEGER DEFAULT 0);");
@@ -1313,6 +1312,22 @@
} finally {
db.endTransaction();
}
+ // fall through
+ case 59:
+ if (currentVersion <= 59) {
+ return;
+ }
+
+ db.beginTransaction();
+ try {
+ upgradeDatabaseToVersion60(db);
+ db.setTransactionSuccessful();
+ } catch (Throwable ex) {
+ Log.e(TAG, ex.getMessage(), ex);
+ break;
+ } finally {
+ db.endTransaction();
+ }
return;
}
@@ -1527,15 +1542,16 @@
private void upgradeDatabaseToVersion59(SQLiteDatabase db) {
db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
- + Mms.ARCHIVED + " INTEGER DEFAULT 0");
- db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+ Mms.CREATOR + " TEXT");
db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
- + Sms.ARCHIVED + " INTEGER DEFAULT 0");
- db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
+ Sms.CREATOR + " TEXT");
}
+ private void upgradeDatabaseToVersion60(SQLiteDatabase db) {
+ db.execSQL("ALTER TABLE " + MmsSmsProvider.TABLE_THREADS +" ADD COLUMN "
+ + Threads.ARCHIVED + " INTEGER DEFAULT 0");
+ }
+
@Override
public synchronized SQLiteDatabase getWritableDatabase() {
SQLiteDatabase db = super.getWritableDatabase();
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index 8fc7391..1806e01 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -1259,6 +1259,16 @@
break;
}
+ case URI_CONVERSATIONS: {
+ final ContentValues finalValues = new ContentValues(1);
+ if (values.containsKey(Threads.ARCHIVED)) {
+ // Only allow update archived
+ finalValues.put(Threads.ARCHIVED, values.getAsBoolean(Threads.ARCHIVED));
+ }
+ affectedRows = db.update(TABLE_THREADS, finalValues, selection, selectionArgs);
+ break;
+ }
+
default:
throw new UnsupportedOperationException(
NO_DELETES_INSERTS_OR_UPDATES + uri);