From 57b64e63a1210d52b1069a3c9b5ff1dcc24bdfed Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 4 Aug 2018 22:24:46 +0200 Subject: [PATCH] perform the selected action if a known contact gets clicked at Recents --- .../activities/GroupContactsActivity.kt | 22 +++++++------------ .../contacts/extensions/Activity.kt | 18 ++++++++++++--- .../contacts/fragments/MyViewPagerFragment.kt | 17 ++++---------- .../contacts/fragments/RecentsFragment.kt | 5 +++++ 4 files changed, 32 insertions(+), 30 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt index 19cc309a..3716007b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt @@ -3,12 +3,17 @@ package com.simplemobiletools.contacts.activities import android.os.Bundle import android.view.Menu import android.view.MenuItem -import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.extensions.beVisibleIf +import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor +import com.simplemobiletools.commons.extensions.underlineText +import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.adapters.ContactsAdapter import com.simplemobiletools.contacts.dialogs.SelectContactsDialog import com.simplemobiletools.contacts.extensions.* -import com.simplemobiletools.contacts.helpers.* +import com.simplemobiletools.contacts.helpers.ContactsHelper +import com.simplemobiletools.contacts.helpers.GROUP +import com.simplemobiletools.contacts.helpers.LOCATION_GROUP_CONTACTS import com.simplemobiletools.contacts.interfaces.RefreshContactsListener import com.simplemobiletools.contacts.interfaces.RemoveFromGroupListener import com.simplemobiletools.contacts.models.Contact @@ -102,18 +107,7 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh val currAdapter = group_contacts_list.adapter if (currAdapter == null) { ContactsAdapter(this, contacts, this, LOCATION_GROUP_CONTACTS, this, group_contacts_list, group_contacts_fastscroller) { - when (config.onContactClick) { - ON_CLICK_CALL_CONTACT -> { - val contact = it as Contact - if (contact.phoneNumbers.isNotEmpty()) { - tryStartCall(it) - } else { - toast(R.string.no_phone_number_found) - } - } - ON_CLICK_VIEW_CONTACT -> viewContact(it as Contact) - ON_CLICK_EDIT_CONTACT -> editContact(it as Contact) - } + contactClicked(it as Contact) }.apply { addVerticalDividers(true) group_contacts_list.adapter = this diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt index 60ead47a..a63eb96d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt @@ -15,9 +15,7 @@ import com.simplemobiletools.contacts.BuildConfig import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.activities.SimpleActivity import com.simplemobiletools.contacts.dialogs.CallConfirmationDialog -import com.simplemobiletools.contacts.helpers.ContactsHelper -import com.simplemobiletools.contacts.helpers.SMT_PRIVATE -import com.simplemobiletools.contacts.helpers.VcfExporter +import com.simplemobiletools.contacts.helpers.* import com.simplemobiletools.contacts.models.Contact import com.simplemobiletools.contacts.models.ContactSource import java.io.File @@ -202,3 +200,17 @@ fun Activity.getVisibleContactSources(): ArrayList { sourceNames.removeAll(config.ignoredContactSources) return sourceNames } + +fun SimpleActivity.contactClicked(contact: Contact) { + when (config.onContactClick) { + ON_CLICK_CALL_CONTACT -> { + if (contact.phoneNumbers.isNotEmpty()) { + tryStartCall(contact) + } else { + toast(R.string.no_phone_number_found) + } + } + ON_CLICK_VIEW_CONTACT -> viewContact(contact) + ON_CLICK_EDIT_CONTACT -> editContact(contact) + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt index 9b37a550..7e0c03fe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -15,7 +15,9 @@ import com.simplemobiletools.contacts.activities.MainActivity import com.simplemobiletools.contacts.activities.SimpleActivity import com.simplemobiletools.contacts.adapters.ContactsAdapter import com.simplemobiletools.contacts.adapters.GroupsAdapter -import com.simplemobiletools.contacts.extensions.* +import com.simplemobiletools.contacts.extensions.config +import com.simplemobiletools.contacts.extensions.contactClicked +import com.simplemobiletools.contacts.extensions.getVisibleContactSources import com.simplemobiletools.contacts.helpers.* import com.simplemobiletools.contacts.models.Contact import com.simplemobiletools.contacts.models.Group @@ -185,18 +187,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) forceListRedraw = false val location = if (this is FavoritesFragment) LOCATION_FAVORITES_TAB else LOCATION_CONTACTS_TAB ContactsAdapter(activity as SimpleActivity, contacts, activity, location, null, fragment_list, fragment_fastscroller) { - when (config.onContactClick) { - ON_CLICK_CALL_CONTACT -> { - val contact = it as Contact - if (contact.phoneNumbers.isNotEmpty()) { - (activity as SimpleActivity).tryStartCall(it) - } else { - activity!!.toast(R.string.no_phone_number_found) - } - } - ON_CLICK_VIEW_CONTACT -> context!!.viewContact(it as Contact) - ON_CLICK_EDIT_CONTACT -> context!!.editContact(it as Contact) - } + activity?.contactClicked(it as Contact) }.apply { addVerticalDividers(true) fragment_list.adapter = this diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/RecentsFragment.kt index f0e039d0..0c1f62c1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/RecentsFragment.kt @@ -5,6 +5,7 @@ import android.util.AttributeSet import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.isActivityDestroyed import com.simplemobiletools.contacts.adapters.RecentCallsAdapter +import com.simplemobiletools.contacts.extensions.contactClicked import com.simplemobiletools.contacts.helpers.PHONE_NUMBER_PATTERN import com.simplemobiletools.contacts.models.Contact import com.simplemobiletools.contacts.models.RecentCall @@ -34,6 +35,10 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage break } } + + if (selectedContact != null) { + activity?.contactClicked(selectedContact) + } }.apply { addVerticalDividers(true) fragment_list.adapter = this