From 1b28f626aa181cd4d3648b044406e826cb800086 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 12 Aug 2018 22:13:28 +0200 Subject: [PATCH] fix nickname adding and editing at contacts --- .../activities/EditContactActivity.kt | 3 +++ .../contacts/helpers/ContactsHelper.kt | 24 +++++++++++++++++++ .../main/res/layout/activity_edit_contact.xml | 18 +++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) 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 db2bef0f..ad80cb37 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -279,6 +279,7 @@ class EditContactActivity : ContactActivity() { contact_middle_name.beVisibleIf(showFields and SHOW_MIDDLE_NAME_FIELD != 0) contact_surname.beVisibleIf(showFields and SHOW_SURNAME_FIELD != 0) contact_suffix.beVisibleIf(showFields and SHOW_SUFFIX_FIELD != 0) + contact_nickname.beVisibleIf(showFields and SHOW_NICKNAME_FIELD != 0) contact_source.beVisibleIf(showFields and SHOW_CONTACT_SOURCE_FIELD != 0) contact_source_image.beVisibleIf(showFields and SHOW_CONTACT_SOURCE_FIELD != 0) @@ -346,6 +347,7 @@ class EditContactActivity : ContactActivity() { contact_middle_name.setText(middleName) contact_surname.setText(surname) contact_suffix.setText(suffix) + contact_nickname.setText(nickname) } } @@ -715,6 +717,7 @@ class EditContactActivity : ContactActivity() { middleName = contact_middle_name.value surname = contact_surname.value suffix = contact_suffix.value + nickname = contact_nickname.value photoUri = currentContactPhotoPath phoneNumbers = getFilledPhoneNumbers() emails = getFilledEmails() 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 b719390d..2413682b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt @@ -825,6 +825,22 @@ class ContactsHelper(val activity: Activity) { operations.add(build()) } + // delete nickname + ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply { + val selection = "${ContactsContract.Data.RAW_CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ? " + val selectionArgs = arrayOf(contact.id.toString(), Nickname.CONTENT_ITEM_TYPE) + withSelection(selection, selectionArgs) + operations.add(build()) + } + + // add nickname + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply { + withValue(ContactsContract.Data.RAW_CONTACT_ID, contact.id) + withValue(ContactsContract.Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE) + withValue(Nickname.NAME, contact.nickname) + operations.add(build()) + } + // delete phone numbers ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI).apply { val selection = "${ContactsContract.Data.RAW_CONTACT_ID} = ? AND ${ContactsContract.Data.MIMETYPE} = ? " @@ -1089,6 +1105,14 @@ class ContactsHelper(val activity: Activity) { operations.add(build()) } + // nickname + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply { + withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) + withValue(ContactsContract.Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE) + withValue(Nickname.NAME, contact.nickname) + operations.add(build()) + } + // phone numbers contact.phoneNumbers.forEach { ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).apply { diff --git a/app/src/main/res/layout/activity_edit_contact.xml b/app/src/main/res/layout/activity_edit_contact.xml index 534ac995..15c77a7c 100644 --- a/app/src/main/res/layout/activity_edit_contact.xml +++ b/app/src/main/res/layout/activity_edit_contact.xml @@ -170,6 +170,22 @@ android:textCursorDrawable="@null" android:textSize="@dimen/bigger_text_size"/> + +