From dcf33302ccef41224e40623d72943a295f211b02 Mon Sep 17 00:00:00 2001 From: Nancy Chen Date: Wed, 27 Aug 2014 15:30:10 -0700 Subject: Handle db upgrade for non-Sprout devices to match Sprout devices. Sprout devices will have an extra sub_id column in the calls table, add this column to non-Sprout devices, and copy data from sub_id column to subscription_id column for sprout devices in calls table. Bug: 14990572 Change-Id: Id334011c34833e44954d793947b65222183a0b09 --- .../providers/contacts/ContactsDatabaseHelper.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/com') diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java index c8990ea..6a09010 100644 --- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java +++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java @@ -117,7 +117,7 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { * 900-999 L * */ - static final int DATABASE_VERSION = 908; + static final int DATABASE_VERSION = 909; public interface Tables { public static final String CONTACTS = "contacts"; @@ -1479,6 +1479,7 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { Calls.FEATURES + " INTEGER NOT NULL DEFAULT 0," + Calls.PHONE_ACCOUNT_COMPONENT_NAME + " TEXT," + Calls.PHONE_ACCOUNT_ID + " TEXT," + + Calls.SUB_ID + " INTEGER DEFAULT -1," + Calls.NEW + " INTEGER," + Calls.CACHED_NAME + " TEXT," + Calls.CACHED_NUMBER_TYPE + " INTEGER," + @@ -2790,6 +2791,11 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { oldVersion = 908; } + if (oldVersion < 909) { + upgradeToVersion909(db); + oldVersion = 909; + } + if (upgradeViewsAndTriggers) { createContactsViews(db); createGroupsView(db); @@ -4192,6 +4198,17 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { db.execSQL("UPDATE raw_contacts SET pinned = 0 WHERE pinned = 2147483647;"); } + private void upgradeToVersion909(SQLiteDatabase db) { + try { + db.execSQL("ALTER TABLE calls ADD sub_id INTEGER DEFAULT -1;"); + } catch (SQLiteException e) { + // The column already exists--copy over data + db.execSQL("UPDATE calls SET subscription_component_name='com.android.phone/" + + "com.android.services.telephony.TelephonyConnectionService';"); + db.execSQL("UPDATE calls SET subscription_id=sub_id;"); + } + } + public String extractHandleFromEmailAddress(String email) { Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(email); if (tokens.length == 0) { -- cgit v1.1