diff options
author | Ta-wei Yen <twyen@google.com> | 2017-11-28 17:11:42 -0800 |
---|---|---|
committer | Ta-wei Yen <twyen@google.com> | 2017-12-04 15:31:32 -0800 |
commit | 028b73bebdb9cac09de3b93a82ccb72ad3238ed6 (patch) | |
tree | e03eaf2cf620e46beb93ac273c834952d01348ea | |
parent | 29dc99f9e89e49c6e7e9ecc2cdd935ab719d6cb5 (diff) | |
download | ContactsProvider-028b73bebdb9cac09de3b93a82ccb72ad3238ed6.tar.gz |
Implement preferred phone account columns
Fixes: 69868483
Test: CtsProviderTestCases
Change-Id: Ib8af85b5c618c1a2c62bc6c09daae057521de5d6
4 files changed, 40 insertions, 12 deletions
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java index 76fe173d..9414ece8 100644 --- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java +++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java @@ -136,9 +136,10 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { * 1000-1099 M * 1100-1199 N * 1200-1299 O + * 1300-1399 P * </pre> */ - static final int DATABASE_VERSION = 1202; + static final int DATABASE_VERSION = 1300; private static final int MINIMUM_SUPPORTED_VERSION = 700; @VisibleForTesting @@ -1440,7 +1441,9 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { Data.SYNC2 + " TEXT, " + Data.SYNC3 + " TEXT, " + Data.SYNC4 + " TEXT, " + - Data.CARRIER_PRESENCE + " INTEGER NOT NULL DEFAULT 0 " + + Data.CARRIER_PRESENCE + " INTEGER NOT NULL DEFAULT 0, " + + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME + " TEXT, " + + Data.PREFERRED_PHONE_ACCOUNT_ID + " TEXT " + ");"); db.execSQL("CREATE INDEX data_raw_contact_id ON " + Tables.DATA + " (" + @@ -1924,6 +1927,8 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { + Data.DATA14 + ", " + Data.DATA15 + ", " + Data.CARRIER_PRESENCE + ", " + + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME + ", " + + Data.PREFERRED_PHONE_ACCOUNT_ID + ", " + Data.SYNC1 + ", " + Data.SYNC2 + ", " + Data.SYNC3 + ", " @@ -2666,6 +2671,12 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { oldVersion = 1202; } + if (isUpgradeRequired(oldVersion,newVersion, 1300)) { + upgradeToVersion1300(db); + upgradeViewsAndTriggers = true; + oldVersion = 1300; + } + // We extracted "calls" and "voicemail_status" at this point, but we can't remove them here // yet, until CallLogDatabaseHelper moves the data. @@ -3438,6 +3449,15 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { + "last_time_used = 0"); } + public void upgradeToVersion1300(SQLiteDatabase db) { + try { + db.execSQL("ALTER TABLE data ADD preferred_phone_account_component_name " + + "TEXT;"); + db.execSQL("ALTER TABLE data ADD preferred_phone_account_id TEXT;"); + } catch (SQLiteException ignore) { + } + } + /** * This method is only used in upgradeToVersion1101 method, and should not be used in other * places now. Because data15 is not used to generate hash_id for photo, and the new generating diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index 701c7916..1d5681ac 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -754,6 +754,8 @@ public class ContactsProvider2 extends AbstractContactsProvider .add(Data.DATA14) .add(Data.DATA15) .add(Data.CARRIER_PRESENCE) + .add(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME) + .add(Data.PREFERRED_PHONE_ACCOUNT_ID) .add(Data.DATA_VERSION) .add(Data.IS_PRIMARY) .add(Data.IS_SUPER_PRIMARY) diff --git a/tests/src/com/android/providers/contacts/ContactsDatabaseHelperUpgradeTest.java b/tests/src/com/android/providers/contacts/ContactsDatabaseHelperUpgradeTest.java index 185fa031..1832b4e4 100644 --- a/tests/src/com/android/providers/contacts/ContactsDatabaseHelperUpgradeTest.java +++ b/tests/src/com/android/providers/contacts/ContactsDatabaseHelperUpgradeTest.java @@ -16,7 +16,6 @@ package com.android.providers.contacts; -import static com.android.providers.contacts.TestUtils.createDatabaseSnapshot; import static com.android.providers.contacts.TestUtils.cv; import static com.android.providers.contacts.TestUtils.executeSqlFromAssetFile; @@ -67,14 +66,6 @@ import com.android.providers.contacts.ContactsDatabaseHelper.Tables; import com.android.providers.contacts.testutil.TestUtil; import com.android.providers.contacts.util.PropertyUtils; -import junit.framework.AssertionFailedError; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.HashMap; - /** * Unit tests for database create/upgrade operations in {@link ContactsDatabaseHelper}. * @@ -376,6 +367,8 @@ public class ContactsDatabaseHelperUpgradeTest extends BaseDatabaseHelperUpgrade new TableColumn(Data.SYNC3, TEXT, false, null), new TableColumn(Data.SYNC4, TEXT, false, null), new TableColumn(Data.CARRIER_PRESENCE, INTEGER, true, "0"), + new TableColumn(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, TEXT, false, null), + new TableColumn(Data.PREFERRED_PHONE_ACCOUNT_ID, TEXT, false, null), }; private static final TableColumn[] PHONE_LOOKUP_COLUMNS = new TableColumn[] { diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java index 23b42dae..6c76709e 100644 --- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java +++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java @@ -16,7 +16,6 @@ package com.android.providers.contacts; -import static com.android.providers.contacts.TestUtils.createDatabaseSnapshot; import static com.android.providers.contacts.TestUtils.cv; import static com.android.providers.contacts.TestUtils.dumpCursor; @@ -420,6 +419,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { Data.DATA14, Data.DATA15, Data.CARRIER_PRESENCE, + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, + Data.PREFERRED_PHONE_ACCOUNT_ID, Data.SYNC1, Data.SYNC2, Data.SYNC3, @@ -508,6 +509,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { Data.DATA14, Data.DATA15, Data.CARRIER_PRESENCE, + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, + Data.PREFERRED_PHONE_ACCOUNT_ID, Data.SYNC1, Data.SYNC2, Data.SYNC3, @@ -590,6 +593,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { Data.DATA14, Data.DATA15, Data.CARRIER_PRESENCE, + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, + Data.PREFERRED_PHONE_ACCOUNT_ID, Data.SYNC1, Data.SYNC2, Data.SYNC3, @@ -698,6 +703,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { Data.DATA14, Data.DATA15, Data.CARRIER_PRESENCE, + Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, + Data.PREFERRED_PHONE_ACCOUNT_ID, Data.SYNC1, Data.SYNC2, Data.SYNC3, @@ -6485,6 +6492,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { values.put(Data.DATA14, "old14"); values.put(Data.DATA15, "old15"); values.put(Data.CARRIER_PRESENCE, 0); + values.put(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, "oldcomponentname"); + values.put(Data.PREFERRED_PHONE_ACCOUNT_ID, "oldid"); Uri uri = mResolver.insert(Data.CONTENT_URI, values); assertStoredValues(uri, values); assertNetworkNotified(true); @@ -6509,6 +6518,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { values.put(Data.DATA14, "new14"); values.put(Data.DATA15, "new15"); values.put(Data.CARRIER_PRESENCE, Data.CARRIER_PRESENCE_VT_CAPABLE); + values.put(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, "newcomponentname"); + values.put(Data.PREFERRED_PHONE_ACCOUNT_ID, "newid"); mResolver.update(Data.CONTENT_URI, values, Data.RAW_CONTACT_ID + "=" + rawContactId + " AND " + Data.MIMETYPE + "='testmimetype'", null); assertNetworkNotified(true); @@ -9909,6 +9920,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { values.put(Data.DATA14, "fourteen"); values.put(Data.DATA15, "fifteen".getBytes()); values.put(Data.CARRIER_PRESENCE, Data.CARRIER_PRESENCE_VT_CAPABLE); + values.put(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME, "preferredcomponentname"); + values.put(Data.PREFERRED_PHONE_ACCOUNT_ID, "preferredid"); values.put(Data.SYNC1, "sync1"); values.put(Data.SYNC2, "sync2"); values.put(Data.SYNC3, "sync3"); |