From ad8745e1095d12f796af0fa5d4800ae2188b8919 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 27 Mar 2019 17:48:32 +0100 Subject: [PATCH] group search results by parent folder --- .../filemanager/pro/adapters/ItemsAdapter.kt | 2 +- .../pro/fragments/ItemsFragment.kt | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt index 2058368f..420aa3cb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt @@ -575,7 +575,7 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList { + val files = searchFiles(searchText, currentPath) val listItems = ArrayList() - listItems.addAll(searchFiles(searchText, currentPath, 0)) + + var previousParent = "" + files.forEach { + val parent = it.mPath.getParentPath() + if (parent != previousParent) { + listItems.add(ListItem("", context!!.humanizePath(parent), false, 0, 0, true)) + previousParent = parent + } + listItems.add(it) + } activity?.runOnUiThread { getRecyclerAdapter()?.updateItems(listItems, text) @@ -287,15 +297,15 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb }.start() } - private fun searchFiles(text: String, path: String, nestingLevel: Int): ArrayList { + private fun searchFiles(text: String, path: String): ArrayList { val files = ArrayList() val isSortingBySize = context!!.config.getFolderSorting(path) and SORT_BY_SIZE != 0 File(path).listFiles()?.forEach { if (it.isDirectory) { - files.addAll(searchFiles(text, it.absolutePath, nestingLevel + 1)) + files.addAll(searchFiles(text, it.absolutePath)) } else { if (it.name.startsWith(text, true)) { - val fileDirItem = getFileDirItemFromFile(it, isSortingBySize, nestingLevel) + val fileDirItem = getFileDirItemFromFile(it, isSortingBySize) if (fileDirItem != null) { files.add(fileDirItem) }