mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
filter contacts based on the dialpad input
This commit is contained in:
@ -11,9 +11,13 @@ import com.simplemobiletools.commons.helpers.isLollipopPlus
|
|||||||
import com.simplemobiletools.contacts.R
|
import com.simplemobiletools.contacts.R
|
||||||
import com.simplemobiletools.contacts.extensions.afterTextChanged
|
import com.simplemobiletools.contacts.extensions.afterTextChanged
|
||||||
import com.simplemobiletools.contacts.extensions.config
|
import com.simplemobiletools.contacts.extensions.config
|
||||||
|
import com.simplemobiletools.contacts.helpers.ContactsHelper
|
||||||
|
import com.simplemobiletools.contacts.helpers.PHONE_NUMBER_PATTERN
|
||||||
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
import kotlinx.android.synthetic.main.activity_dialpad.*
|
import kotlinx.android.synthetic.main.activity_dialpad.*
|
||||||
|
|
||||||
class DialpadActivity : SimpleActivity() {
|
class DialpadActivity : SimpleActivity() {
|
||||||
|
var contacts = ArrayList<Contact>()
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_dialpad)
|
setContentView(R.layout.activity_dialpad)
|
||||||
@ -33,6 +37,7 @@ class DialpadActivity : SimpleActivity() {
|
|||||||
dialpad_clear_char.setOnClickListener { clearChar() }
|
dialpad_clear_char.setOnClickListener { clearChar() }
|
||||||
dialpad_clear_char.setOnLongClickListener { clearInput(); true }
|
dialpad_clear_char.setOnLongClickListener { clearInput(); true }
|
||||||
dialpad_input.afterTextChanged { dialpadValueChanged(it) }
|
dialpad_input.afterTextChanged { dialpadValueChanged(it) }
|
||||||
|
ContactsHelper(this).getContacts { gotContacts(it) }
|
||||||
disableKeyboardPopping()
|
disableKeyboardPopping()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +85,15 @@ class DialpadActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun dialpadValueChanged(text: String) {
|
private fun gotContacts(newContacts: ArrayList<Contact>) {
|
||||||
|
contacts = newContacts
|
||||||
|
Contact.sorting = config.sorting
|
||||||
|
Contact.startWithSurname = config.startNameWithSurname
|
||||||
|
contacts.sort()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun dialpadValueChanged(text: String) {
|
||||||
|
val numericOnly = text.replace(PHONE_NUMBER_PATTERN.toRegex(), "")
|
||||||
|
val filtered = contacts.filter { it.cleanPhoneNumbers.any { it.value.contains(text) || it.value.contains(numericOnly) } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user