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)
|
favorites_fragment?.refreshContacts(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (refreshTabsMask and RECENTS_TAB_MASK != 0) {
|
||||||
|
recents_fragment?.refreshContacts(it)
|
||||||
|
}
|
||||||
|
|
||||||
if (refreshTabsMask and GROUPS_TAB_MASK != 0) {
|
if (refreshTabsMask and GROUPS_TAB_MASK != 0) {
|
||||||
if (refreshTabsMask == GROUPS_TAB_MASK) {
|
if (refreshTabsMask == GROUPS_TAB_MASK) {
|
||||||
groups_fragment.skipHashComparing = true
|
groups_fragment.skipHashComparing = true
|
||||||
|
@ -5,6 +5,8 @@ import android.util.AttributeSet
|
|||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
import com.simplemobiletools.commons.extensions.isActivityDestroyed
|
import com.simplemobiletools.commons.extensions.isActivityDestroyed
|
||||||
import com.simplemobiletools.contacts.adapters.RecentCallsAdapter
|
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 com.simplemobiletools.contacts.models.RecentCall
|
||||||
import kotlinx.android.synthetic.main.fragment_layout.view.*
|
import kotlinx.android.synthetic.main.fragment_layout.view.*
|
||||||
|
|
||||||
@ -24,7 +26,14 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
|||||||
val currAdapter = fragment_list.adapter
|
val currAdapter = fragment_list.adapter
|
||||||
if (currAdapter == null) {
|
if (currAdapter == null) {
|
||||||
RecentCallsAdapter(activity!!, recentCalls, activity, fragment_list, fragment_fastscroller) {
|
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 {
|
}.apply {
|
||||||
addVerticalDividers(true)
|
addVerticalDividers(true)
|
||||||
fragment_list.adapter = this
|
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 IS_PRIVATE = "is_private"
|
||||||
const val GROUP = "group"
|
const val GROUP = "group"
|
||||||
const val FIRST_GROUP_ID = 10000
|
const val FIRST_GROUP_ID = 10000
|
||||||
|
const val PHONE_NUMBER_PATTERN = "\\D+"
|
||||||
|
|
||||||
const val LOCATION_CONTACTS_TAB = 0
|
const val LOCATION_CONTACTS_TAB = 0
|
||||||
const val LOCATION_FAVORITES_TAB = 1
|
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_FIRST_NAME
|
||||||
import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME
|
import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME
|
||||||
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
|
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,
|
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>,
|
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 {
|
companion object {
|
||||||
var sorting = 0
|
var sorting = 0
|
||||||
var startWithSurname = false
|
var startWithSurname = false
|
||||||
val pattern = "\\D+".toRegex()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun compareTo(other: Contact): Int {
|
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 {
|
fun getHashToCompare(): Int {
|
||||||
val newPhoneNumbers = ArrayList<PhoneNumber>()
|
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>()
|
val newEmails = ArrayList<Email>()
|
||||||
emails.mapTo(newEmails) { Email(it.value, 0) }
|
emails.mapTo(newEmails) { Email(it.value, 0) }
|
||||||
|
Reference in New Issue
Block a user