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}.
          *