From 427c64971d5f941a8a5d3f89c3be599089db3718 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 7 Nov 2012 12:12:12 +0100 Subject: [PATCH] Contact edition allows to delete existing fields --- src/org/linphone/EditContactFragment.java | 31 ++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/org/linphone/EditContactFragment.java b/src/org/linphone/EditContactFragment.java index 80c33c84d..be3feef05 100644 --- a/src/org/linphone/EditContactFragment.java +++ b/src/org/linphone/EditContactFragment.java @@ -147,6 +147,7 @@ public class EditContactFragment extends Fragment { @Override public void onClick(View v) { nounoa.delete(); + numbersAndAddresses.remove(nounoa); view.setVisibility(View.GONE); } }); @@ -279,7 +280,35 @@ public class EditContactFragment extends Fragment { } public void delete() { - //TODO + ArrayList ops = new ArrayList(); + + if (isSipAddress) { + String select = ContactsContract.Data.CONTACT_ID + "=? AND " + + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE + "' AND " + + ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS + "=?"; + String[] args = new String[] { String.valueOf(contactID), oldNumberOrAddress }; + + ops.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI) + .withSelection(select, args) + .build() + ); + } else { + String select = ContactsContract.Data.CONTACT_ID + "=? AND " + + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' AND " + + ContactsContract.CommonDataKinds.Phone.NUMBER + "=?"; + String[] args = new String[] { String.valueOf(contactID), oldNumberOrAddress }; + + ops.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI) + .withSelection(select, args) + .build() + ); + } + + try { + getActivity().getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); + } catch (Exception e) { + e.printStackTrace(); + } } private void addNewNumber(ArrayList ops) {