From f99cb03c57b1884475e9a83a8b1eaee935d98dac Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 21 Jun 2019 22:10:04 +0200 Subject: [PATCH] fix #329, avoid some search glitches related to threading --- .../filemanager/pro/fragments/ItemsFragment.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt index 6420a4d3..3c5811a2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt @@ -40,6 +40,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb private var showHidden = false private var skipItemUpdating = false private var isSearchOpen = false + private var lastSearchedText = "" private var scrollStates = HashMap() private var storedItems = ArrayList() @@ -266,6 +267,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb fun searchQueryChanged(text: String) { val searchText = text.trim() + lastSearchedText = searchText Thread { if (context == null) { return@Thread @@ -289,6 +291,10 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb } else -> { val files = searchFiles(searchText, currentPath) + if (lastSearchedText != searchText) { + return@Thread + } + val listItems = ArrayList() var previousParent = "" @@ -341,6 +347,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb fun searchOpened() { isSearchOpen = true + lastSearchedText = "" } fun searchClosed() { @@ -349,6 +356,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb getRecyclerAdapter()?.updateItems(storedItems) } skipItemUpdating = false + lastSearchedText = "" } private fun createNewItem() {