New SMS and MMS APIs and semantics (3/4)

New SMS and MMS database columns: archived and creator

b/14095333

Change-Id: I4d79014c12ac622b098c1b7892134ce842f70f83
diff --git a/src/com/android/providers/telephony/MmsProvider.java b/src/com/android/providers/telephony/MmsProvider.java
index bc382fd..ed5ea8d 100644
--- a/src/com/android/providers/telephony/MmsProvider.java
+++ b/src/com/android/providers/telephony/MmsProvider.java
@@ -65,7 +65,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 58ec263..b79e36a 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 = 58;
+    static final int DATABASE_VERSION = 59;
     private final Context mContext;
     private LowStorageMonitor mLowStorageMonitor;
 
@@ -594,6 +594,8 @@
                    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" +
                    ");");
 
@@ -838,6 +840,8 @@
                    "locked INTEGER DEFAULT 0," +
                    "sub_id INTEGER DEFAULT -1, " +
                    "error_code INTEGER DEFAULT 0," +
+                   "archived INTEGER DEFAULT 0," +
+                   "creator TEXT," +
                    "seen INTEGER DEFAULT 0" +
                    ");");
 
@@ -1293,6 +1297,22 @@
             } finally {
                 db.endTransaction();
             }
+            // fall through
+        case 58:
+            if (currentVersion <= 58) {
+                return;
+            }
+
+            db.beginTransaction();
+            try {
+                upgradeDatabaseToVersion59(db);
+                db.setTransactionSuccessful();
+            } catch (Throwable ex) {
+                Log.e(TAG, ex.getMessage(), ex);
+                break;
+            } finally {
+                db.endTransaction();
+            }
             return;
         }
 
@@ -1505,6 +1525,17 @@
                 + Sms.SUB_ID + " INTEGER DEFAULT -1");
     }
 
+    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");
+    }
+
     @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 e07fe54..3c6fae9 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -285,7 +285,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index 33dd4ba..89736e5 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -84,7 +84,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/SmsWritePermission.java b/src/com/android/providers/telephony/SmsWritePermission.java
index 502bf14..186a75f 100644
--- a/src/com/android/providers/telephony/SmsWritePermission.java
+++ b/src/com/android/providers/telephony/SmsWritePermission.java
@@ -28,7 +28,7 @@
     public static final String TAG = "SmsWritePermission";
 
     public static void enforce() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily disable this so not to break existing apps
             return;
         }