summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2009-09-01 15:58:40 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2009-09-01 15:58:40 -0700
commitb5759b5f4f01771a615c100c1d87adc702a6ef71 (patch)
tree137a894f198f9cc90d48b7224509a811e299b246 /core/java
parent9217c45829da4d0c9c9dbdc6bc950c7f3e03e4f5 (diff)
Adding a convenience method to resolve contact lookup URI to a regular content URI
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/provider/ContactsContract.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 9dfab99e5cb8..2b67946096c5 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -289,6 +289,32 @@ public final class ContactsContract {
}
/**
+ * 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}.
*