perform the selected action if a known contact gets clicked at Recents

This commit is contained in:
tibbi 2018-08-04 22:24:46 +02:00
parent c1e6feb82a
commit 57b64e63a1
4 changed files with 32 additions and 30 deletions

View File

@ -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

View File

@ -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<String> {
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)
}
}

View File

@ -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

View File

@ -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