From b5759b5f4f01771a615c100c1d87adc702a6ef71 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Tue, 1 Sep 2009 15:58:40 -0700 Subject: [PATCH] Adding a convenience method to resolve contact lookup URI to a regular content URI --- .../android/provider/ContactsContract.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 9dfab99e5cb87..2b67946096c5e 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -288,6 +288,32 @@ public final class ContactsContract { return null; } + /** + * Computes a content URI (see {@link #CONTENT_URI}) given a lookup URI. + *

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