diff --git a/app/build.gradle b/app/build.gradle index 52d72314..768a4235 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,5 +32,5 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:3.2.18' + implementation 'com.simplemobiletools:commons:3.2.19' } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt index 5f82b35d..9386ca55 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt @@ -160,7 +160,17 @@ class ContactActivity : SimpleActivity() { } private fun saveContact() { + contact!!.apply { + firstName = contact_first_name.value + middleName = contact_middle_name.value + surname = contact_surname.value + number = contact_number.value + email = contact_email.value + if (ContactsHelper(this@ContactActivity).updateContact(this)) { + finish() + } + } } private fun deleteContact() { 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 8b87167f..7e9a661a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt @@ -244,6 +244,27 @@ class ContactsHelper(val activity: BaseSimpleActivity) { return sort } + fun updateContact(contact: Contact): Boolean { + return try { + val operations = ArrayList() + ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI).apply { + val selection = "${ContactsContract.Data.CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ?" + val selectionArgs = arrayOf(contact.id.toString(), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) + withSelection(selection, selectionArgs) + withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, contact.firstName) + withValue(ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME, contact.middleName) + withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, contact.surname) + operations.add(this.build()) + } + + activity.contentResolver.applyBatch(ContactsContract.AUTHORITY, operations) + true + } catch (e: Exception) { + activity.showErrorToast(e) + false + } + } + fun deleteContact(contact: Contact) = deleteContacts(arrayListOf(contact)) fun deleteContacts(contacts: ArrayList) {