From e0fea2c3526115cfe189de59f6e2b00e94b3d6f5 Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Fri, 3 Feb 2012 19:32:31 -0800 Subject: [PATCH] CB-75 contact.remove does not remove the contact fully --- .../src/com/phonegap/ContactAccessorSdk5.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/framework/src/com/phonegap/ContactAccessorSdk5.java b/framework/src/com/phonegap/ContactAccessorSdk5.java index 09bd91ad..f6bb32ae 100644 --- a/framework/src/com/phonegap/ContactAccessorSdk5.java +++ b/framework/src/com/phonegap/ContactAccessorSdk5.java @@ -1617,9 +1617,20 @@ public class ContactAccessorSdk5 extends ContactAccessor { * @param id the unique ID of the contact to remove */ public boolean remove(String id) { - int result = mApp.getContentResolver().delete(ContactsContract.Data.CONTENT_URI, - ContactsContract.Data.CONTACT_ID + " = ?", - new String[] {id}); + int result = 0; + Cursor cursor = mApp.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, + null, + ContactsContract.Contacts._ID + " = ?", + new String[] {id}, null); + if(cursor.getCount() == 1) { + cursor.moveToFirst(); + String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); + Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey); + result = mApp.getContentResolver().delete(uri, null, null); + } else { + Log.d(LOG_TAG, "Could not find contact with ID"); + } + return (result > 0) ? true : false; }