Adding a convenience method to resolve contact lookup URI to a regular content URI
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 9dfab99..2b67946 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -289,6 +289,32 @@
}
/**
+ * Computes a content URI (see {@link #CONTENT_URI}) given a lookup URI.
+ * <p>
+ * Returns null if the contact cannot be found.
+ */
+ public static Uri lookupContact(ContentResolver resolver, Uri lookupUri) {
+ if (lookupUri == null) {
+ return null;
+ }
+
+ Cursor c = resolver.query(lookupUri, new String[]{Contacts._ID}, null, null, null);
+ if (c == null) {
+ return null;
+ }
+
+ try {
+ if (c.moveToFirst()) {
+ long contactId = c.getLong(0);
+ return ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+ }
+ } finally {
+ c.close();
+ }
+ return null;
+ }
+
+ /**
* The content:// style URI for this table joined with useful data from
* {@link Data}.
*