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 5dfdc8d3..bfc35114 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/SettingsActivity.kt @@ -1,11 +1,16 @@ package com.simplemobiletools.contacts.activities import android.os.Bundle +import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.useEnglishToggled +import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.extensions.config +import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT +import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT +import com.simplemobiletools.contacts.helpers.ON_CLICK_VIEW_CONTACT import kotlinx.android.synthetic.main.activity_settings.* import java.util.* @@ -25,6 +30,7 @@ class SettingsActivity : SimpleActivity() { setupShowContactThumbnails() setupShowPhoneNumbers() setupStartNameWithSurname() + setupOnContactClick() updateTextColors(settings_holder) } @@ -83,4 +89,25 @@ class SettingsActivity : SimpleActivity() { config.startNameWithSurname = settings_start_with_surname.isChecked } } + + private fun setupOnContactClick() { + settings_on_contact_click.text = getOnContactClickText() + settings_on_contact_click_holder.setOnClickListener { + val items = arrayListOf( + RadioItem(ON_CLICK_CALL_CONTACT, getString(R.string.call_contact)), + RadioItem(ON_CLICK_VIEW_CONTACT, getString(R.string.view_contact)), + RadioItem(ON_CLICK_EDIT_CONTACT, getString(R.string.edit_contact))) + + RadioGroupDialog(this@SettingsActivity, items, config.onContactClick) { + config.onContactClick = it as Int + settings_on_contact_click.text = getOnContactClickText() + } + } + } + + private fun getOnContactClickText() = getString(when (config.onContactClick) { + ON_CLICK_CALL_CONTACT -> R.string.call_contact + ON_CLICK_VIEW_CONTACT -> R.string.view_contact + else -> R.string.edit_contact + }) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt index 8db8f01a..5119db88 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt @@ -43,7 +43,7 @@ class ViewContactActivity : ContactActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.edit -> editContact() + R.id.edit -> editContact(contact!!) R.id.share -> shareContact() R.id.delete -> deleteContact() else -> return super.onOptionsItemSelected(item) @@ -210,13 +210,6 @@ class ViewContactActivity : ContactActivity() { contact_events_holder.beVisibleIf(events.isNotEmpty()) } - private fun editContact() { - Intent(applicationContext, EditContactActivity::class.java).apply { - putExtra(CONTACT_ID, contact!!.id) - startActivity(this) - } - } - private fun setupTypePickers() { if (contact!!.phoneNumbers.isEmpty()) { val numberHolder = contact_numbers_holder.getChildAt(0) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index 0109cc59..9d49925e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -19,7 +19,7 @@ import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.activities.SimpleActivity import com.simplemobiletools.contacts.extensions.config -import com.simplemobiletools.contacts.extensions.openContact +import com.simplemobiletools.contacts.extensions.editContact import com.simplemobiletools.contacts.extensions.shareContacts import com.simplemobiletools.contacts.helpers.ContactsHelper import com.simplemobiletools.contacts.interfaces.RefreshContactsListener @@ -104,8 +104,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList { + val contact = it as Contact + if (contact.phoneNumbers.isNotEmpty()) { + (activity as SimpleActivity).tryStartCall(it) + } else { + activity!!.toast(R.string.no_phone_number_found) + } } - } else { - context!!.openContact(it as Contact) + ON_CLICK_VIEW_CONTACT -> context!!.viewContact(it as Contact) + ON_CLICK_EDIT_CONTACT -> context!!.editContact(it as Contact) } }.apply { setupDragListener(true) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt index ce8fce7e..d34fbc68 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt @@ -47,4 +47,8 @@ class Config(context: Context) : BaseConfig(context) { var localAccountType: String get() = prefs.getString(LOCAL_ACCOUNT_TYPE, "-1") set(localAccountType) = prefs.edit().putString(LOCAL_ACCOUNT_TYPE, localAccountType).apply() + + var onContactClick: Int + get() = prefs.getInt(ON_CONTACT_CLICK, ON_CLICK_VIEW_CONTACT) + set(onContactClick) = prefs.edit().putInt(ON_CONTACT_CLICK, onContactClick).apply() } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt index 5453d913..fa0e6a8c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt @@ -11,6 +11,7 @@ const val LAST_USED_CONTACT_SOURCE = "last_used_contact_source" const val LAST_USED_VIEW_PAGER_PAGE = "last_used_view_pager_page" const val LOCAL_ACCOUNT_NAME = "local_account_name" const val LOCAL_ACCOUNT_TYPE = "local_account_type" +const val ON_CONTACT_CLICK = "on_contact_click" const val CONTACT_ID = "contact_id" @@ -51,3 +52,7 @@ const val HOME_FAX = "HOME;FAX" const val PAGER = "PAGER" const val MOBILE = "MOBILE" const val VOICE = "VOICE" + +const val ON_CLICK_CALL_CONTACT = 1 +const val ON_CLICK_VIEW_CONTACT = 2 +const val ON_CLICK_EDIT_CONTACT = 3 diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 8bdb6e93..35f4ccf3 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -170,5 +170,40 @@ android:text="@string/start_name_with_surname"/> + + + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5f16fcb4..1e54adbf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -26,7 +26,6 @@ Zeige Vorschaubilder für Kontakte Beim Klicken auf den Kontakt Kontakt anrufen - Kontakt bearbeiten Kontaktdetails ansehen diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 333ac75d..323ce16a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -26,7 +26,6 @@ Afficher les vignettes des contacts Sur appui du contact Appeler le contact - Ouvrir l\éditeur de contact Voir les détails du contact diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 66716cf5..9db78c56 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -26,7 +26,6 @@ Show contact thumbnails On contact click Call contact - Open contact editor View contact details diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 70db9bfa..17b3cd75 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -26,7 +26,6 @@ Show contact thumbnails On contact click Call contact - Open contact editor View contact details diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0377228e..cc0a7cc6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -26,7 +26,6 @@ Показывать фото контакта При нажатии на контакт Позвонить контакту - Открыть редактор контактов Просмотреть подробности о контакте diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 9ba0e348..00f2d6fb 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -26,7 +26,6 @@ Zobraziť obrázky kontaktov Po kliknutí na kontakt Zavolať kontakt - Otvoriť editor kontaktov Zobraziť údaje kontaktu diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index a5714f11..73c90220 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -26,7 +26,6 @@ Show contact thumbnails On contact click Call contact - Open contact editor View contact details diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 761dec5e..1e05a942 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,7 +26,6 @@ Show contact thumbnails On contact click Call contact - Open contact editor View contact details