mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
Delay Autofill by 5 seconds
This commit is contained in:
@ -10,6 +10,7 @@ import android.media.AudioManager
|
||||
import android.media.RingtoneManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.provider.ContactsContract.CommonDataKinds
|
||||
import android.provider.ContactsContract.CommonDataKinds.*
|
||||
import android.provider.MediaStore
|
||||
@ -19,6 +20,7 @@ import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.widget.*
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.dialogs.SelectAlarmSoundDialog
|
||||
@ -57,6 +59,8 @@ class EditContactActivity : ContactActivity() {
|
||||
private val CHOOSE_PHOTO = 2
|
||||
private val REMOVE_PHOTO = 3
|
||||
|
||||
private val AUTO_FILL_DELAY = 5000L
|
||||
|
||||
private var mLastSavePromptTS = 0L
|
||||
private var wasActivityInitialized = false
|
||||
private var lastPhotoIntentUri: Uri? = null
|
||||
@ -1534,6 +1538,7 @@ class EditContactActivity : ContactActivity() {
|
||||
private fun setupAutofill(nameTextViews: List<MyAutoCompleteTextView>) {
|
||||
ContactsHelper(this).getContacts { contacts ->
|
||||
val adapter = AutoCompleteTextViewAdapter(this, contacts)
|
||||
val handler = Handler(mainLooper)
|
||||
nameTextViews.forEach { view ->
|
||||
view.setAdapter(adapter)
|
||||
view.setOnItemClickListener { _, _, position, _ ->
|
||||
@ -1549,6 +1554,12 @@ class EditContactActivity : ContactActivity() {
|
||||
contact_surname.setText(selectedContact.surname)
|
||||
}
|
||||
}
|
||||
view.doAfterTextChanged {
|
||||
handler.postDelayed({
|
||||
adapter.enableAutoFill = true
|
||||
adapter.filter.filter(it)
|
||||
}, AUTO_FILL_DELAY)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ import kotlinx.android.synthetic.main.item_autocomplete_name_number.view.item_au
|
||||
import kotlinx.android.synthetic.main.item_autocomplete_name_number.view.item_autocomplete_name
|
||||
import kotlinx.android.synthetic.main.item_autocomplete_name_number.view.item_autocomplete_number
|
||||
|
||||
class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList<Contact>) : ArrayAdapter<Contact>(activity, 0, contacts) {
|
||||
class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList<Contact>, var enableAutoFill: Boolean = false) : ArrayAdapter<Contact>(activity, 0, contacts) {
|
||||
var resultList = ArrayList<Contact>()
|
||||
|
||||
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
|
||||
@ -67,20 +67,22 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar
|
||||
val filterResults = FilterResults()
|
||||
if (constraint != null) {
|
||||
resultList.clear()
|
||||
val searchString = constraint.toString().normalizeString()
|
||||
contacts.forEach {
|
||||
if (it.name.contains(searchString, true)) {
|
||||
resultList.add(it)
|
||||
if (enableAutoFill) {
|
||||
val searchString = constraint.toString().normalizeString()
|
||||
contacts.forEach {
|
||||
if (it.name.contains(searchString, true)) {
|
||||
resultList.add(it)
|
||||
}
|
||||
}
|
||||
|
||||
resultList.sortWith(compareBy<Contact>
|
||||
{ it.name.startsWith(searchString, true) }.thenBy
|
||||
{ it.name.contains(searchString, true) })
|
||||
resultList.reverse()
|
||||
|
||||
filterResults.values = resultList
|
||||
filterResults.count = resultList.size
|
||||
}
|
||||
|
||||
resultList.sortWith(compareBy<Contact>
|
||||
{ it.name.startsWith(searchString, true) }.thenBy
|
||||
{ it.name.contains(searchString, true) })
|
||||
resultList.reverse()
|
||||
|
||||
filterResults.values = resultList
|
||||
filterResults.count = resultList.size
|
||||
}
|
||||
return filterResults
|
||||
}
|
||||
|
Reference in New Issue
Block a user