FP2-2061 : Other Messaging apps don't work on FP2

Added the sub_id column to the Sms database

JIRA-ID : FP2-2061

Change-Id: I938247fa895ecb741200f0da68c4f1cd43a342e6
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 492f346..ba66d35 100644
--- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
+++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
@@ -218,8 +218,9 @@
 
     static final String DATABASE_NAME = "mmssms.db";
     //static final int DATABASE_VERSION = 61;
-    static final int DATABASE_VERSION = 62;
-    private final Context mContext;
+    //static final int DATABASE_VERSION = 62;
+static final int DATABASE_VERSION = 63;    
+private final Context mContext;
     private LowStorageMonitor mLowStorageMonitor;
 
     private static final String SUB_ID = "sub_id";
@@ -597,7 +598,8 @@
                    Mms.DELIVERY_TIME + " INTEGER," +
                    Mms.DELIVERY_REPORT + " INTEGER," +
                    Mms.LOCKED + " INTEGER DEFAULT 0," +
-                   Mms.PHONE_ID + " INTEGER DEFAULT -1, " +
+		   Mms.SUBSCRIPTION_ID + " INTEGER DEFAULT -1, " +
+		   Mms.PHONE_ID + " INTEGER DEFAULT -1, " +
                    Mms.SEEN + " INTEGER DEFAULT 0," +
                    Mms.CREATOR + " TEXT," +
                    Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
@@ -843,6 +845,7 @@
                    "body TEXT," +
                    "service_center TEXT," +
                    "locked INTEGER DEFAULT 0," +
+		   "sub_id INTEGER DEFAULT -1, " +
                    "phone_id INTEGER DEFAULT -1, " +
                    "error_code INTEGER DEFAULT 0," +
                    "creator TEXT," +
@@ -862,6 +865,7 @@
                    "sequence INTEGER," + // the part number of this message
                    "destination_port INTEGER," +
                    "address TEXT," +
+		   "sub_id INTEGER DEFAULT -1, " +
                    "phone_id INTEGER DEFAULT -1, " +
                    "pdu TEXT);"); // the raw PDU for this part
 
@@ -930,7 +934,8 @@
                    PendingMessages.ERROR_CODE + " INTEGER," +
                    PendingMessages.RETRY_INDEX + " INTEGER NOT NULL DEFAULT 0," +
                    PendingMessages.DUE_TIME + " INTEGER," +
-                   PendingMessages.PHONE_ID + " INTEGER DEFAULT 0, " +
+		   PendingMessages.SUBSCRIPTION_ID + " INTEGER DEFAULT 0, " +
+		   PendingMessages.PHONE_ID + " INTEGER DEFAULT 0, " +
                    PendingMessages.LAST_TRY + " INTEGER);");
 
     }
@@ -1365,6 +1370,22 @@
                 } finally {
                     db.endTransaction();
                 }
+// fall through
+        case 62:
+            if (currentVersion <= 62) {
+                return;
+            }
+
+            db.beginTransaction();
+            try {
+                upgradeDatabaseToVersion63(db);
+                db.setTransactionSuccessful();
+            } catch (Throwable ex) {
+                Log.e(TAG, ex.getMessage(), ex);
+                break;
+            } finally {
+                db.endTransaction();
+            }
             return;
         }
 
@@ -1614,6 +1635,17 @@
             db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU + " ADD COLUMN " + FPExtTelephony.DELIVERY_R +" INTEGER DEFAULT 0");
     }
 
+    private void upgradeDatabaseToVersion63(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+                + 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 "
+                + SUB_ID + " INTEGER DEFAULT -1");
+        db.execSQL("ALTER TABLE " + SmsProvider.TABLE_RAW +" ADD COLUMN "
+                + SUB_ID + " INTEGER DEFAULT -1");
+    }
+
     // Try to copy data from existing src column to new column which supposed
     // to be added before calling this functin.
     // If src or dest column not exsit, it will just bail out.
@@ -1919,6 +1951,7 @@
                 Mms.DELIVERY_TIME + " INTEGER," +
                 Mms.DELIVERY_REPORT + " INTEGER," +
                 Mms.LOCKED + " INTEGER DEFAULT 0," +
+		Mms.SUBSCRIPTION_ID + " INTEGER DEFAULT -1," +
                 Mms.PHONE_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 205cce1..d61cbfe 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -132,7 +132,7 @@
     // 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.SUBSCRIPTION_ID,
                     Mms.PHONE_ID };
 
     // These are the columns that appear only in the MMS message