[ContactsContract] Add new API PhoneLookup.CONTACT_ID and DATA_ID
It is a mistake that we put contact id in PhoneLookup._ID.
But for SIP query, the contact id is put in Data.CONTACT_ID instead.
For backward-compability issue, we can't revert the change, but to
save developer from having logic like below, PhoneLookup.CONTACT_ID is
introduced.
if (sip) {
get contact id in Data.CONTACT_ID column
} else {
get contact id in PhoneLookup._ID column
}
So for sip query, we put contact id in PhoneLookup.CONTACT_ID.
For other phone lookup query, we put contact id in both PhoneLookup.ID
and PhoneLookup.CONTACT_ID.
BUG:27149017
Change-Id: I4155da29bbacdda0d43164b0ce11c7224a4eee67
diff --git a/api/current.txt b/api/current.txt
index 9e96249..2eba30f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -31469,6 +31469,8 @@
}
protected static abstract interface ContactsContract.PhoneLookupColumns {
+ field public static final java.lang.String CONTACT_ID = "contact_id";
+ field public static final java.lang.String DATA_ID = "data_id";
field public static final java.lang.String LABEL = "label";
field public static final java.lang.String NORMALIZED_NUMBER = "normalized_number";
field public static final java.lang.String NUMBER = "number";
diff --git a/api/system-current.txt b/api/system-current.txt
index 12187dd..433090e 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -33847,6 +33847,8 @@
}
protected static abstract interface ContactsContract.PhoneLookupColumns {
+ field public static final java.lang.String CONTACT_ID = "contact_id";
+ field public static final java.lang.String DATA_ID = "data_id";
field public static final java.lang.String LABEL = "label";
field public static final java.lang.String NORMALIZED_NUMBER = "normalized_number";
field public static final java.lang.String NUMBER = "number";
diff --git a/api/test-current.txt b/api/test-current.txt
index 74c6787..2fff729 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -31482,6 +31482,8 @@
}
protected static abstract interface ContactsContract.PhoneLookupColumns {
+ field public static final java.lang.String CONTACT_ID = "contact_id";
+ field public static final java.lang.String DATA_ID = "data_id";
field public static final java.lang.String LABEL = "label";
field public static final java.lang.String NORMALIZED_NUMBER = "normalized_number";
field public static final java.lang.String NUMBER = "number";
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index dfdd36d..904b393 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -4982,6 +4982,17 @@
*/
protected interface PhoneLookupColumns {
/**
+ * The ID of the data row.
+ * <P>Type: INTEGER</P>
+ */
+ public static final String DATA_ID = "data_id";
+ /**
+ * A reference to the {@link ContactsContract.Contacts#_ID} that this
+ * data belongs to.
+ * <P>Type: INTEGER</P>
+ */
+ public static final String CONTACT_ID = "contact_id";
+ /**
* The phone number as the user entered it.
* <P>Type: TEXT</P>
*/
@@ -5055,6 +5066,18 @@
* <td>Contact ID.</td>
* </tr>
* <tr>
+ * <td>long</td>
+ * <td>{@link #CONTACT_ID}</td>
+ * <td>read-only</td>
+ * <td>Contact ID.</td>
+ * </tr>
+ * <tr>
+ * <td>long</td>
+ * <td>{@link #DATA_ID}</td>
+ * <td>read-only</td>
+ * <td>Data ID.</td>
+ * </tr>
+ * <tr>
* <td>String</td>
* <td>{@link #LOOKUP_KEY}</td>
* <td>read-only</td>