From 1907003b75499966b3aa00f00a446c77029ad194 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 5 Feb 2022 11:59:37 +0100 Subject: [PATCH] allow managing visible contact fields directly from View Contact screen --- .../pro/activities/EditContactActivity.kt | 2 +- .../pro/activities/ViewContactActivity.kt | 16 +++++++++++++++- app/src/main/res/menu/menu_view_contact.xml | 14 +++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt index 648feaf3..b4e1024c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt @@ -296,7 +296,7 @@ class EditContactActivity : ContactActivity() { } } - private fun hasContactChanged() = contact != fillContactValues() || originalRingtone != contact?.ringtone + private fun hasContactChanged() = contact != null && contact != fillContactValues() || originalRingtone != contact?.ringtone private fun openWith() { Intent().apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt index c6044f06..21a8fc35 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt @@ -22,6 +22,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.dialogs.ChooseSocialDialog +import com.simplemobiletools.contacts.pro.dialogs.ManageVisibleFieldsDialog import com.simplemobiletools.contacts.pro.extensions.* import com.simplemobiletools.contacts.pro.helpers.* import com.simplemobiletools.contacts.pro.models.* @@ -112,6 +113,16 @@ class ViewContactActivity : ContactActivity() { deleteContactFromAllSources() true } + + findItem(R.id.manage_visible_fields).setOnMenuItemClickListener { + ManageVisibleFieldsDialog(this@ViewContactActivity) { + showFields = config.showContactFields + ensureBackgroundThread { + initContact() + } + } + true + } } contact_toolbar.setNavigationOnClickListener { @@ -296,9 +307,12 @@ class ViewContactActivity : ContactActivity() { displayName += " (${contact!!.nickname})" } + val showNameFields = showFields and SHOW_PREFIX_FIELD != 0 || showFields and SHOW_FIRST_NAME_FIELD != 0 || showFields and SHOW_MIDDLE_NAME_FIELD != 0 || + showFields and SHOW_SURNAME_FIELD != 0 || showFields and SHOW_SUFFIX_FIELD != 0 + contact_name.text = displayName contact_name.copyOnLongClick(displayName) - contact_name.beVisibleIf(displayName.isNotEmpty() && !contact!!.isABusinessContact()) + contact_name.beVisibleIf(displayName.isNotEmpty() && !contact!!.isABusinessContact() && showNameFields) contact_name_image.beInvisibleIf(contact_name.isGone()) } diff --git a/app/src/main/res/menu/menu_view_contact.xml b/app/src/main/res/menu/menu_view_contact.xml index ed3d769f..e5fc657b 100644 --- a/app/src/main/res/menu/menu_view_contact.xml +++ b/app/src/main/res/menu/menu_view_contact.xml @@ -1,23 +1,27 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="always" /> + app:showAsAction="always" /> + app:showAsAction="always" /> + app:showAsAction="never" /> +