Skip to content

Commit f99cb03

Browse files
committed
fix #329, avoid some search glitches related to threading
1 parent 5c2c057 commit f99cb03

File tree

1 file changed

+8
-0
lines changed
  • app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments

1 file changed

+8
-0
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
4040
private var showHidden = false
4141
private var skipItemUpdating = false
4242
private var isSearchOpen = false
43+
private var lastSearchedText = ""
4344
private var scrollStates = HashMap<String, Parcelable>()
4445

4546
private var storedItems = ArrayList<ListItem>()
@@ -266,6 +267,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
266267

267268
fun searchQueryChanged(text: String) {
268269
val searchText = text.trim()
270+
lastSearchedText = searchText
269271
Thread {
270272
if (context == null) {
271273
return@Thread
@@ -289,6 +291,10 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
289291
}
290292
else -> {
291293
val files = searchFiles(searchText, currentPath)
294+
if (lastSearchedText != searchText) {
295+
return@Thread
296+
}
297+
292298
val listItems = ArrayList<ListItem>()
293299

294300
var previousParent = ""
@@ -341,6 +347,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
341347

342348
fun searchOpened() {
343349
isSearchOpen = true
350+
lastSearchedText = ""
344351
}
345352

346353
fun searchClosed() {
@@ -349,6 +356,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
349356
getRecyclerAdapter()?.updateItems(storedItems)
350357
}
351358
skipItemUpdating = false
359+
lastSearchedText = ""
352360
}
353361

354362
private fun createNewItem() {

0 commit comments

Comments
 (0)