mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
determine if a known Contact has been clicked at Recents
This commit is contained in:
@ -502,6 +502,10 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
favorites_fragment?.refreshContacts(it)
|
||||
}
|
||||
|
||||
if (refreshTabsMask and RECENTS_TAB_MASK != 0) {
|
||||
recents_fragment?.refreshContacts(it)
|
||||
}
|
||||
|
||||
if (refreshTabsMask and GROUPS_TAB_MASK != 0) {
|
||||
if (refreshTabsMask == GROUPS_TAB_MASK) {
|
||||
groups_fragment.skipHashComparing = true
|
||||
|
@ -5,6 +5,8 @@ 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.helpers.PHONE_NUMBER_PATTERN
|
||||
import com.simplemobiletools.contacts.models.Contact
|
||||
import com.simplemobiletools.contacts.models.RecentCall
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.*
|
||||
|
||||
@ -24,7 +26,14 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
||||
val currAdapter = fragment_list.adapter
|
||||
if (currAdapter == null) {
|
||||
RecentCallsAdapter(activity!!, recentCalls, activity, fragment_list, fragment_fastscroller) {
|
||||
|
||||
val recentCall = (it as RecentCall).number.replace(PHONE_NUMBER_PATTERN.toRegex(), "")
|
||||
var selectedContact: Contact? = null
|
||||
for (contact in allContacts) {
|
||||
if (contact.phoneNumbers.any { it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), "") == recentCall }) {
|
||||
selectedContact = contact
|
||||
break
|
||||
}
|
||||
}
|
||||
}.apply {
|
||||
addVerticalDividers(true)
|
||||
fragment_list.adapter = this
|
||||
|
@ -21,6 +21,7 @@ const val SMT_PRIVATE = "smt_private" // used at the contact source of local c
|
||||
const val IS_PRIVATE = "is_private"
|
||||
const val GROUP = "group"
|
||||
const val FIRST_GROUP_ID = 10000
|
||||
const val PHONE_NUMBER_PATTERN = "\\D+"
|
||||
|
||||
const val LOCATION_CONTACTS_TAB = 0
|
||||
const val LOCATION_FAVORITES_TAB = 1
|
||||
|
@ -4,6 +4,7 @@ import android.graphics.Bitmap
|
||||
import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME
|
||||
import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME
|
||||
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
|
||||
import com.simplemobiletools.contacts.helpers.PHONE_NUMBER_PATTERN
|
||||
|
||||
data class Contact(val id: Int, var prefix: String, var firstName: String, var middleName: String, var surname: String, var suffix: String, var photoUri: String,
|
||||
var phoneNumbers: ArrayList<PhoneNumber>, var emails: ArrayList<Email>, var addresses: ArrayList<Address>, var events: ArrayList<Event>,
|
||||
@ -12,7 +13,6 @@ data class Contact(val id: Int, var prefix: String, var firstName: String, var m
|
||||
companion object {
|
||||
var sorting = 0
|
||||
var startWithSurname = false
|
||||
val pattern = "\\D+".toRegex()
|
||||
}
|
||||
|
||||
override fun compareTo(other: Contact): Int {
|
||||
@ -93,7 +93,7 @@ data class Contact(val id: Int, var prefix: String, var firstName: String, var m
|
||||
|
||||
fun getHashToCompare(): Int {
|
||||
val newPhoneNumbers = ArrayList<PhoneNumber>()
|
||||
phoneNumbers.mapTo(newPhoneNumbers) { PhoneNumber(it.value.replace(pattern, ""), 0) }
|
||||
phoneNumbers.mapTo(newPhoneNumbers) { PhoneNumber(it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), ""), 0) }
|
||||
|
||||
val newEmails = ArrayList<Email>()
|
||||
emails.mapTo(newEmails) { Email(it.value, 0) }
|
||||
|
Reference in New Issue
Block a user