Add SUB_ID columns for SmsProvider and MmsProvider
b/15673719
Change-Id: I0f3d6c3bfaead109edef283ac45d7e5f8c3220b4
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 4f23be8..58ec263 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 = 57;
+ static final int DATABASE_VERSION = 58;
private final Context mContext;
private LowStorageMonitor mLowStorageMonitor;
@@ -592,6 +592,7 @@
Mms.DELIVERY_TIME + " INTEGER," +
Mms.DELIVERY_REPORT + " INTEGER," +
Mms.LOCKED + " INTEGER DEFAULT 0," +
+ Mms.SUB_ID + " INTEGER DEFAULT -1, " +
Mms.SEEN + " INTEGER DEFAULT 0," +
Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
");");
@@ -835,6 +836,7 @@
"body TEXT," +
"service_center TEXT," +
"locked INTEGER DEFAULT 0," +
+ "sub_id INTEGER DEFAULT -1, " +
"error_code INTEGER DEFAULT 0," +
"seen INTEGER DEFAULT 0" +
");");
@@ -851,6 +853,7 @@
"sequence INTEGER," + // the part number of this message
"destination_port INTEGER," +
"address TEXT," +
+ "sub_id INTEGER DEFAULT -1, " +
"pdu TEXT);"); // the raw PDU for this part
db.execSQL("CREATE TABLE attachments (" +
@@ -917,6 +920,7 @@
PendingMessages.ERROR_CODE + " INTEGER," +
PendingMessages.RETRY_INDEX + " INTEGER NOT NULL DEFAULT 0," +
PendingMessages.DUE_TIME + " INTEGER," +
+ PendingMessages.SUB_ID + " INTEGER DEFAULT 0, " +
PendingMessages.LAST_TRY + " INTEGER);");
}
@@ -1273,6 +1277,22 @@
} finally {
db.endTransaction();
}
+ // fall through
+ case 57:
+ if (currentVersion <= 57) {
+ return;
+ }
+
+ db.beginTransaction();
+ try {
+ upgradeDatabaseToVersion58(db);
+ db.setTransactionSuccessful();
+ } catch (Throwable ex) {
+ Log.e(TAG, ex.getMessage(), ex);
+ break;
+ } finally {
+ db.endTransaction();
+ }
return;
}
@@ -1474,6 +1494,17 @@
db.execSQL("DELETE FROM " + MmsProvider.TABLE_PDU + " WHERE " + Mms.THREAD_ID + " IS NULL");
}
+ private void upgradeDatabaseToVersion58(SQLiteDatabase db) {
+ db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+ + Mms.SUB_ID + " INTEGER DEFAULT -1");
+ db.execSQL("ALTER TABLE " + MmsSmsProvider.TABLE_PENDING_MSG +" ADD COLUMN "
+ + "pending_sub_id" + " INTEGER DEFAULT 0");
+ db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
+ + Sms.SUB_ID + " INTEGER DEFAULT -1");
+ db.execSQL("ALTER TABLE " + SmsProvider.TABLE_RAW +" ADD COLUMN "
+ + Sms.SUB_ID + " INTEGER DEFAULT -1");
+ }
+
@Override
public synchronized SQLiteDatabase getWritableDatabase() {
SQLiteDatabase db = super.getWritableDatabase();
@@ -1751,6 +1782,7 @@
Mms.DELIVERY_TIME + " INTEGER," +
Mms.DELIVERY_REPORT + " INTEGER," +
Mms.LOCKED + " INTEGER DEFAULT 0," +
+ Mms.SUB_ID + " INTEGER DEFAULT -1," +
Mms.SEEN + " INTEGER DEFAULT 0," +
Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
");");
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index a15335f..c477d8e 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -117,7 +117,8 @@
// These are the columns that appear in both the MMS ("pdu") and
// SMS ("sms") message tables.
private static final String[] MMS_SMS_COLUMNS =
- { BaseColumns._ID, Mms.DATE, Mms.DATE_SENT, Mms.READ, Mms.THREAD_ID, Mms.LOCKED };
+ { BaseColumns._ID, Mms.DATE, Mms.DATE_SENT, Mms.READ, Mms.THREAD_ID, Mms.LOCKED,
+ Mms.SUB_ID };
// These are the columns that appear only in the MMS message
// table.
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index c36a0d2..c5390cf 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -49,7 +49,7 @@
private static final Uri NOTIFICATION_URI = Uri.parse("content://sms");
private static final Uri ICC_URI = Uri.parse("content://sms/icc");
static final String TABLE_SMS = "sms";
- private static final String TABLE_RAW = "raw";
+ static final String TABLE_RAW = "raw";
private static final String TABLE_SR_PENDING = "sr_pending";
private static final String TABLE_WORDS = "words";