avoid removing contacts from Favorites at modifying groups

This commit is contained in:
tibbi 2018-03-19 20:34:41 +01:00
parent e33fe588c2
commit 39810e46dc

View File

@ -11,6 +11,7 @@ import android.provider.ContactsContract
import android.provider.ContactsContract.CommonDataKinds import android.provider.ContactsContract.CommonDataKinds
import android.provider.ContactsContract.CommonDataKinds.Note import android.provider.ContactsContract.CommonDataKinds.Note
import android.provider.MediaStore import android.provider.MediaStore
import android.text.TextUtils
import android.util.SparseArray import android.util.SparseArray
import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
@ -665,11 +666,15 @@ class ContactsHelper(val activity: BaseSimpleActivity) {
} }
// delete groups // delete groups
ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply { val relevantGroupIDs = getStoredGroups().map { it.id }
val selection = "${ContactsContract.Data.RAW_CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ? " if (relevantGroupIDs.isNotEmpty()) {
val selectionArgs = arrayOf(contact.id.toString(), CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE) val IDsString = TextUtils.join(",", relevantGroupIDs)
withSelection(selection, selectionArgs) ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply {
operations.add(build()) 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 // add groups