From f01bcb0f3501e97753203692f84deaaa17fad1af Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 5 Jan 2023 10:48:15 +0100 Subject: [PATCH] allow searching Recents fragments too --- .../filemanager/pro/activities/MainActivity.kt | 5 ++++- .../filemanager/pro/fragments/ItemsFragment.kt | 5 +++-- .../filemanager/pro/fragments/RecentsFragment.kt | 13 +++++++++++-- app/src/main/res/layout/recents_fragment.xml | 5 ++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt index 610f7e75..d605c1c5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt @@ -31,6 +31,7 @@ import com.simplemobiletools.filemanager.pro.extensions.config import com.simplemobiletools.filemanager.pro.extensions.tryOpenPathIntent import com.simplemobiletools.filemanager.pro.fragments.ItemsFragment import com.simplemobiletools.filemanager.pro.fragments.MyViewPagerFragment +import com.simplemobiletools.filemanager.pro.fragments.RecentsFragment import com.simplemobiletools.filemanager.pro.fragments.StorageFragment import com.simplemobiletools.filemanager.pro.helpers.MAX_COLUMN_COUNT import com.simplemobiletools.filemanager.pro.helpers.RootHelpers @@ -143,13 +144,15 @@ class MainActivity : SimpleActivity() { } override fun onBackPressed() { - if (getCurrentFragment() !is ItemsFragment) { + if (getCurrentFragment() is StorageFragment) { super.onBackPressed() return } if (main_menu.isSearchOpen) { main_menu.closeSearch() + } else if (getCurrentFragment() is RecentsFragment) { + super.onBackPressed() } else if (getCurrentFragment()!!.breadcrumbs.getItemCount() <= 1) { if (!wasBackJustPressed && config.pressBackTwice) { wasBackJustPressed = true 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 1da7e61d..028b8c34 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 @@ -70,7 +70,8 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF if (currentPath != "") { breadcrumbs.updateColor(textColor) } - items_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false + + items_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false } override fun setupFontSize() { @@ -300,6 +301,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF return } + items_swipe_refresh.isEnabled = text.isEmpty() && activity?.config?.enablePullToRefresh != false when { searchText.isEmpty() -> { items_fastscroller.beVisible() @@ -396,7 +398,6 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF fun searchOpened() { isSearchOpen = true lastSearchedText = "" - items_swipe_refresh.isEnabled = false } fun searchClosed() { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt index 5f6ab818..0e0d9750 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt @@ -28,6 +28,8 @@ import java.io.File class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener { private val RECENTS_LIMIT = 50 + private var filesIgnoringSearch = ArrayList() + private var lastSearchedText = "" override fun setupFragment(activity: SimpleActivity) { if (this.activity == null) { @@ -44,6 +46,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage recents_swipe_refresh?.isRefreshing = false recents_list.beVisibleIf(recents.isNotEmpty()) recents_placeholder.beVisibleIf(recents.isEmpty()) + filesIgnoringSearch = recents addItems(recents, false) if (context != null && currentViewType != context!!.config.getFolderViewType(currentPath)) { @@ -78,7 +81,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage initDrawables() } - recents_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false + recents_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false } private fun setupLayoutManager() { @@ -225,7 +228,13 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage } } - override fun searchQueryChanged(text: String) {} + override fun searchQueryChanged(text: String) { + lastSearchedText = text + val filtered = filesIgnoringSearch.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList + (recents_list.adapter as? ItemsAdapter)?.updateItems(filtered, text) + recents_placeholder.beVisibleIf(filtered.isEmpty()) + recents_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false + } override fun finishActMode() { getRecyclerAdapter()?.finishActMode() diff --git a/app/src/main/res/layout/recents_fragment.xml b/app/src/main/res/layout/recents_fragment.xml index 21a8c3ce..34ed9171 100644 --- a/app/src/main/res/layout/recents_fragment.xml +++ b/app/src/main/res/layout/recents_fragment.xml @@ -1,6 +1,7 @@ @@ -18,7 +19,8 @@ android:text="@string/no_items_found" android:textSize="@dimen/bigger_text_size" android:textStyle="italic" - android:visibility="gone" /> + android:visibility="gone" + tools:visibility="visible" /> +