diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt index 4f34e043..ecd5813a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -710,6 +710,7 @@ class EditContactActivity : ContactActivity() { source = contact!!.source starred = if (isContactStarred()) 1 else 0 notes = contact_notes.value + websites = getFilledWebsites() val company = contact_organization_company.value val jobPosition = contact_organization_job_position.value @@ -788,6 +789,19 @@ class EditContactActivity : ContactActivity() { return events } + private fun getFilledWebsites(): ArrayList { + val websites = ArrayList() + val websitesCount = contact_websites_holder.childCount + for (i in 0 until websitesCount) { + val websiteHolder = contact_websites_holder.getChildAt(i) + val website = websiteHolder.contact_website.value + if (website.isNotEmpty()) { + websites.add(website) + } + } + return websites + } + private fun insertNewContact() { isSaving = true toast(R.string.inserting) 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 8804a680..b88454ed 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt @@ -845,6 +845,25 @@ class ContactsHelper(val activity: BaseSimpleActivity) { operations.add(build()) } + // delete websites + 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.Website.CONTENT_ITEM_TYPE) + withSelection(selection, selectionArgs) + operations.add(build()) + } + + // add websites + contact.websites.forEach { + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply { + withValue(ContactsContract.Data.RAW_CONTACT_ID, contact.id) + withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Website.CONTENT_ITEM_TYPE) + withValue(CommonDataKinds.Website.URL, it) + withValue(CommonDataKinds.Website.TYPE, CommonDataKinds.Website.TYPE_HOMEPAGE) + operations.add(build()) + } + } + // delete groups val relevantGroupIDs = getStoredGroups().map { it.id } if (relevantGroupIDs.isNotEmpty()) { @@ -1051,6 +1070,17 @@ class ContactsHelper(val activity: BaseSimpleActivity) { operations.add(build()) } + // websites + contact.websites.forEach { + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply { + withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) + withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Website.CONTENT_ITEM_TYPE) + withValue(CommonDataKinds.Website.URL, it) + withValue(CommonDataKinds.Website.TYPE, CommonDataKinds.Website.TYPE_HOMEPAGE) + operations.add(build()) + } + } + // groups contact.groups.forEach { ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply {