From 39810e46dc8529a320be3d7da6182fac54f60d1a Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 19 Mar 2018 20:34:41 +0100 Subject: [PATCH] avoid removing contacts from Favorites at modifying groups --- .../contacts/helpers/ContactsHelper.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt index 249138e9..e1559373 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt @@ -11,6 +11,7 @@ import android.provider.ContactsContract import android.provider.ContactsContract.CommonDataKinds import android.provider.ContactsContract.CommonDataKinds.Note import android.provider.MediaStore +import android.text.TextUtils import android.util.SparseArray import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.* @@ -665,11 +666,15 @@ class ContactsHelper(val activity: BaseSimpleActivity) { } // delete groups - ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply { - val selection = "${ContactsContract.Data.RAW_CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ? " - val selectionArgs = arrayOf(contact.id.toString(), CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE) - withSelection(selection, selectionArgs) - operations.add(build()) + val relevantGroupIDs = getStoredGroups().map { it.id } + if (relevantGroupIDs.isNotEmpty()) { + val IDsString = TextUtils.join(",", relevantGroupIDs) + ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply { + val selection = "${ContactsContract.Data.RAW_CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ? AND ${ContactsContract.Data.DATA1} IN (?)" + val selectionArgs = arrayOf(contact.id.toString(), CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE, IDsString) + withSelection(selection, selectionArgs) + operations.add(build()) + } } // add groups