Merge "Clean up USER_OWNER in contacts provider"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ae0502a..ea70f64 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -8,10 +8,12 @@
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION" />
+ <uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.SEND_CALL_LOG_CHANGE" />
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
+ <uses-permission android:name="android.permission.WRITE_CONTACTS" />
<permission
android:name="android.permission.SEND_CALL_LOG_CHANGE"
diff --git a/src/com/android/providers/contacts/CallLogProvider.java b/src/com/android/providers/contacts/CallLogProvider.java
index 4237aa1..64ec14d 100644
--- a/src/com/android/providers/contacts/CallLogProvider.java
+++ b/src/com/android/providers/contacts/CallLogProvider.java
@@ -116,6 +116,7 @@
sCallsProjectionMap = new HashMap<String, String>();
sCallsProjectionMap.put(Calls._ID, Calls._ID);
sCallsProjectionMap.put(Calls.NUMBER, Calls.NUMBER);
+ sCallsProjectionMap.put(Calls.POST_DIAL_DIGITS, Calls.POST_DIAL_DIGITS);
sCallsProjectionMap.put(Calls.NUMBER_PRESENTATION, Calls.NUMBER_PRESENTATION);
sCallsProjectionMap.put(Calls.DATE, Calls.DATE);
sCallsProjectionMap.put(Calls.DURATION, Calls.DURATION);
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index 10f6a2d..c32e672 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -128,7 +128,7 @@
* 1100-1199 N
* </pre>
*/
- static final int DATABASE_VERSION = 1105;
+ static final int DATABASE_VERSION = 1107;
public interface Tables {
public static final String CONTACTS = "contacts";
@@ -1556,6 +1556,7 @@
Calls.NUMBER + " TEXT," +
Calls.NUMBER_PRESENTATION + " INTEGER NOT NULL DEFAULT " +
Calls.PRESENTATION_ALLOWED + "," +
+ Calls.POST_DIAL_DIGITS + " TEXT NOT NULL DEFAULT ''," +
Calls.DATE + " INTEGER," +
Calls.DURATION + " INTEGER," +
Calls.DATA_USAGE + " INTEGER," +
@@ -3035,6 +3036,16 @@
oldVersion = 1105;
}
+ if (oldVersion < 1106) {
+ upgradeToVersion1106(db);
+ oldVersion = 1106;
+ }
+
+ if (oldVersion < 1107) {
+ upgradeToVersion1107(db);
+ oldVersion = 1107;
+ }
+
if (upgradeViewsAndTriggers) {
createContactsViews(db);
createGroupsView(db);
@@ -4616,6 +4627,20 @@
"account_id);");
}
+ public void upgradeToVersion1106(SQLiteDatabase db) {
+ db.execSQL("ALTER TABLE calls ADD post_dial_digits TEXT NOT NULL DEFAULT ''");
+ }
+
+ public void upgradeToVersion1107(SQLiteDatabase db) {
+ try {
+ db.execSQL("ALTER TABLE calls ADD post_dial_digits TEXT NOT NULL DEFAULT ''");
+ } catch (SQLiteException ignore) {
+ // This is for devices which got initialized without a post_dial_digits
+ // column from version 1106. The exception indicates that the column is
+ // already present, so nothing needs to be done.
+ }
+ }
+
/**
* Generate hash_id from data1, data2 and data15 columns.
* If one of data1 and data2 is not null, using data1 and data2 to get hash_id,