@@ -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