Skip to content

Commit e69b05c

Browse files
committed
Avoid modifying adapter on a background thread
1 parent eec5547 commit e69b05c

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/AutoCompleteTextViewAdapter.kt

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,30 +74,31 @@ class AutoCompleteTextViewAdapter(
7474
override fun getFilter() = object : Filter() {
7575
override fun performFiltering(constraint: CharSequence?): FilterResults {
7676
val filterResults = FilterResults()
77-
if (constraint != null) {
78-
resultList.clear()
79-
if (autoComplete) {
80-
val searchString = constraint.toString().normalizeString()
81-
contacts.forEach {
82-
if (it.getNameToDisplay().contains(searchString, true)) {
83-
resultList.add(it)
84-
}
77+
if (constraint != null && autoComplete) {
78+
val searchString = constraint.toString().normalizeString()
79+
val results = mutableListOf<Contact>()
80+
contacts.forEach {
81+
if (it.getNameToDisplay().contains(searchString, true)) {
82+
results.add(it)
8583
}
84+
}
8685

87-
resultList.sortWith(compareBy<Contact>
88-
{ it.name.startsWith(searchString, true) }.thenBy
89-
{ it.name.contains(searchString, true) })
90-
resultList.reverse()
86+
results.sortWith(compareBy<Contact>
87+
{ it.name.startsWith(searchString, true) }.thenBy
88+
{ it.name.contains(searchString, true) })
89+
results.reverse()
9190

92-
filterResults.values = resultList
93-
filterResults.count = resultList.size
94-
}
91+
filterResults.values = results
92+
filterResults.count = results.size
9593
}
9694
return filterResults
9795
}
9896

9997
override fun publishResults(constraint: CharSequence?, results: FilterResults?) {
100-
if ((results?.count ?: -1) > 0) {
98+
if (results != null && results.count > 0) {
99+
resultList.clear()
100+
@Suppress("UNCHECKED_CAST")
101+
resultList.addAll(results.values as List<Contact>)
101102
notifyDataSetChanged()
102103
} else {
103104
notifyDataSetInvalidated()

0 commit comments

Comments
 (0)