Adding a "Photo" directory under Contacts.
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 18b666c..e8ccec2 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -29,6 +29,7 @@
import android.net.Uri;
import android.os.RemoteException;
import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.Contacts.Photo;
import android.text.TextUtils;
import java.io.ByteArrayInputStream;
@@ -307,35 +308,18 @@
}
/**
- * Returns a URI that can be used to retrieve the contact's default photo.
- *
- * @param contactUri the contact whose photo should be used
+ * A sub-directory of a single contact that contains the contact's primary photo.
*/
- public static Uri getPhotoUri(ContentResolver cr, Uri contactUri) {
+ public static final class Photo implements BaseColumns, DataColumns {
+ /**
+ * no public constructor since this is a utility class
+ */
+ private Photo() {}
- // TODO remove try/catch block as soon as eclair-dev is merged in eclair
- try {
- long photoId = -1;
- Cursor cursor = cr.query(contactUri, new String[] {Contacts.PHOTO_ID},
- null, null, null);
- try {
- if (!cursor.moveToNext()) {
- return null;
- }
-
- if (cursor.isNull(0)) {
- return null;
- }
-
- photoId = cursor.getLong(0);
- } finally {
- cursor.close();
- }
-
- return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, photoId);
- } catch (Exception e) {
- return null;
- }
+ /**
+ * The directory twig for this sub-table
+ */
+ public static final String CONTENT_DIRECTORY = "photo";
}
/**
@@ -345,7 +329,7 @@
* @param contactUri the contact whose photo should be used
*/
public static InputStream openContactPhotoInputStream(ContentResolver cr, Uri contactUri) {
- Uri photoUri = getPhotoUri(cr, contactUri);
+ Uri photoUri = Uri.withAppendedPath(contactUri, Photo.CONTENT_DIRECTORY);
if (photoUri == null) {
return null;
}