From acd3f9f9d995307b2a93af1ce0e4b39e4836af79 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 8 Apr 2018 15:06:21 +0200 Subject: [PATCH] creating the dialog for managing visible contact fields --- .../contacts/activities/SettingsActivity.kt | 3 +- .../dialogs/ManageVisibleFieldsDialog.kt | 55 ++++++++ .../layout/dialog_manage_visible_fields.xml | 122 ++++++++++++++++++ 3 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ManageVisibleFieldsDialog.kt create mode 100644 app/src/main/res/layout/dialog_manage_visible_fields.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt index da1f8720..9b76f9eb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt @@ -6,6 +6,7 @@ import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.contacts.R +import com.simplemobiletools.contacts.dialogs.ManageVisibleFieldsDialog import com.simplemobiletools.contacts.extensions.config import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT @@ -42,7 +43,7 @@ class SettingsActivity : SimpleActivity() { private fun setupManageShownContactFields() { settings_manage_contact_fields_holder.setOnClickListener { - + ManageVisibleFieldsDialog(this) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ManageVisibleFieldsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ManageVisibleFieldsDialog.kt new file mode 100644 index 00000000..ff406346 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ManageVisibleFieldsDialog.kt @@ -0,0 +1,55 @@ +package com.simplemobiletools.contacts.dialogs + +import android.support.v7.app.AlertDialog +import com.simplemobiletools.commons.activities.BaseSimpleActivity +import com.simplemobiletools.commons.extensions.setupDialogStuff +import com.simplemobiletools.commons.views.MyAppCompatCheckbox +import com.simplemobiletools.contacts.R +import com.simplemobiletools.contacts.extensions.config +import com.simplemobiletools.contacts.helpers.* + +class ManageVisibleFieldsDialog(val activity: BaseSimpleActivity) { + private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_visible_fields, null) + private val fields = LinkedHashMap() + + init { + fields.apply { + put(SHOW_PREFIX_FIELD, R.id.manage_visible_fields_prefix) + put(SHOW_FIRST_NAME_FIELD, R.id.manage_visible_fields_first_name) + put(SHOW_MIDDLE_NAME_FIELD, R.id.manage_visible_fields_middle_name) + put(SHOW_SURNAME_FIELD, R.id.manage_visible_fields_surname) + put(SHOW_SUFFIX_FIELD, R.id.manage_visible_fields_suffix) + put(SHOW_PHONE_NUMBERS_FIELD, R.id.manage_visible_fields_phone_numbers) + put(SHOW_EMAILS_FIELD, R.id.manage_visible_fields_emails) + put(SHOW_ADDRESSES_FIELD, R.id.manage_visible_fields_addresses) + put(SHOW_EVENTS_FIELD, R.id.manage_visible_fields_events) + put(SHOW_NOTES_FIELD, R.id.manage_visible_fields_notes) + put(SHOW_ORGANIZATION_FIELD, R.id.manage_visible_fields_organization) + put(SHOW_GROUPS_FIELD, R.id.manage_visible_fields_groups) + put(SHOW_CONTACT_SOURCE_FIELD, R.id.manage_visible_fields_contact_source) + } + + val showContactFields = activity.config.showContactFields + for ((key, value) in fields) { + view.findViewById(value).isChecked = showContactFields and key != 0 + } + + AlertDialog.Builder(activity) + .setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() }) + .setNegativeButton(R.string.cancel, null) + .create().apply { + activity.setupDialogStuff(view, this) + } + } + + private fun dialogConfirmed() { + var result = 0 + for ((key, value) in fields) { + if (view.findViewById(value).isChecked) { + result += key + } + } + + activity.config.showContactFields = result + } +} diff --git a/app/src/main/res/layout/dialog_manage_visible_fields.xml b/app/src/main/res/layout/dialog_manage_visible_fields.xml new file mode 100644 index 00000000..718f2f5e --- /dev/null +++ b/app/src/main/res/layout/dialog_manage_visible_fields.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +