package com.jdroid.android.contacts;
import java.io.InputStream;
import android.app.Activity;
import android.content.ContentUris;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.BaseColumns;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds;
import android.provider.ContactsContract.Contacts;
public class ContactsCursor extends CursorWrapper {
@SuppressWarnings("deprecation")
public static Cursor getContactCursor(Activity activity) {
Uri uri = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
String[] projection = new String[] { BaseColumns._ID, ContactsContract.CommonDataKinds.Photo.CONTACT_ID,
Contacts.DISPLAY_NAME, CommonDataKinds.Email.DATA };
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " ASC";
// TODO See this deprecated method
return activity.managedQuery(uri, projection, null, null, sortOrder);
}
public ContactsCursor(Activity activity) {
super(ContactsCursor.getContactCursor(activity));
}
public Long getContactId() {
return getLong(0);
}
public Long getPhotoContactId() {
return getLong(1);
}
public String getDisplayName() {
return getString(2);
}
public String getEmail() {
return getString(3);
}
public Uri getContactUri() {
return ContentUris.withAppendedId(Contacts.CONTENT_URI, getPhotoContactId());
}
@SuppressWarnings("resource")
public Bitmap getPhoto(Activity activity) {
Uri contactPhotoUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, getPhotoContactId());
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(activity.getContentResolver(),
contactPhotoUri);
return BitmapFactory.decodeStream(input);
}
}