Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitfireAT/vcard4android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicki Hirner <hirner@bitfire.at>2019-12-22 17:04:59 +0300
committerRicki Hirner <hirner@bitfire.at>2019-12-24 00:41:19 +0300
commitbf4ea05d74ca8ee12face85af857718d610590e6 (patch)
treebc3caaaded8a451e988ece25dc7da66425ae3a13
parent532ae5807c355c22c621ea93436666c4f042506f (diff)
Improve compatibility (for instance with Samsung "Edge panel")
- don't delete all raw contact data rows, but only the ones we use to insert ourselves
-rw-r--r--src/main/java/at/bitfire/vcard4android/AndroidContact.kt23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
index a8b80b7..101e100 100644
--- a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
+++ b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
@@ -572,11 +572,28 @@ open class AndroidContact(
buildContact(builder, true)
batch.enqueue(BatchOperation.Operation(builder))
- // delete known data rows before adding the new ones; don't delete group memberships!
+ // Delete known data rows before adding the new ones.
+ // - We don't delete group memberships.
+ // - We'll only delete rows we have inserted so that unknown rows like
+ // vnd.android.cursor.item/important_people (= contact is in Samsung "edge panel") remain untouched.
batch.enqueue(BatchOperation.Operation(
ContentProviderOperation.newDelete(dataSyncURI())
- .withSelection(Data.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + " NOT IN (?,?)",
- arrayOf(id.toString(), GroupMembership.CONTENT_ITEM_TYPE, CachedGroupMembership.CONTENT_ITEM_TYPE))
+ .withSelection(Data.RAW_CONTACT_ID + "=? AND " +
+ Data.MIMETYPE + " IN (?,?,?,?,?,?,?,?,?,?,?,?,?)",
+ arrayOf(id.toString(),
+ StructuredName.CONTENT_ITEM_TYPE,
+ Phone.CONTENT_ITEM_TYPE,
+ Email.CONTENT_ITEM_TYPE,
+ Photo.CONTENT_ITEM_TYPE,
+ Organization.CONTENT_ITEM_TYPE,
+ Im.CONTENT_ITEM_TYPE,
+ Nickname.CONTENT_ITEM_TYPE,
+ Note.CONTENT_ITEM_TYPE,
+ StructuredPostal.CONTENT_ITEM_TYPE,
+ Website.CONTENT_ITEM_TYPE,
+ Event.CONTENT_ITEM_TYPE,
+ Relation.CONTENT_ITEM_TYPE,
+ SipAddress.CONTENT_ITEM_TYPE))
))
insertDataRows(batch)
batch.commit()