allow searching Recents fragments too

This commit is contained in:
tibbi 2023-01-05 10:48:15 +01:00
parent cf9326d323
commit f01bcb0f35
4 changed files with 22 additions and 6 deletions

View File

@ -31,6 +31,7 @@ import com.simplemobiletools.filemanager.pro.extensions.config
import com.simplemobiletools.filemanager.pro.extensions.tryOpenPathIntent import com.simplemobiletools.filemanager.pro.extensions.tryOpenPathIntent
import com.simplemobiletools.filemanager.pro.fragments.ItemsFragment import com.simplemobiletools.filemanager.pro.fragments.ItemsFragment
import com.simplemobiletools.filemanager.pro.fragments.MyViewPagerFragment 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.fragments.StorageFragment
import com.simplemobiletools.filemanager.pro.helpers.MAX_COLUMN_COUNT import com.simplemobiletools.filemanager.pro.helpers.MAX_COLUMN_COUNT
import com.simplemobiletools.filemanager.pro.helpers.RootHelpers import com.simplemobiletools.filemanager.pro.helpers.RootHelpers
@ -143,13 +144,15 @@ class MainActivity : SimpleActivity() {
} }
override fun onBackPressed() { override fun onBackPressed() {
if (getCurrentFragment() !is ItemsFragment) { if (getCurrentFragment() is StorageFragment) {
super.onBackPressed() super.onBackPressed()
return return
} }
if (main_menu.isSearchOpen) { if (main_menu.isSearchOpen) {
main_menu.closeSearch() main_menu.closeSearch()
} else if (getCurrentFragment() is RecentsFragment) {
super.onBackPressed()
} else if (getCurrentFragment()!!.breadcrumbs.getItemCount() <= 1) { } else if (getCurrentFragment()!!.breadcrumbs.getItemCount() <= 1) {
if (!wasBackJustPressed && config.pressBackTwice) { if (!wasBackJustPressed && config.pressBackTwice) {
wasBackJustPressed = true wasBackJustPressed = true

View File

@ -70,7 +70,8 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
if (currentPath != "") { if (currentPath != "") {
breadcrumbs.updateColor(textColor) breadcrumbs.updateColor(textColor)
} }
items_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false
items_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false
} }
override fun setupFontSize() { override fun setupFontSize() {
@ -300,6 +301,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
return return
} }
items_swipe_refresh.isEnabled = text.isEmpty() && activity?.config?.enablePullToRefresh != false
when { when {
searchText.isEmpty() -> { searchText.isEmpty() -> {
items_fastscroller.beVisible() items_fastscroller.beVisible()
@ -396,7 +398,6 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
fun searchOpened() { fun searchOpened() {
isSearchOpen = true isSearchOpen = true
lastSearchedText = "" lastSearchedText = ""
items_swipe_refresh.isEnabled = false
} }
fun searchClosed() { fun searchClosed() {

View File

@ -28,6 +28,8 @@ import java.io.File
class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener { class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener {
private val RECENTS_LIMIT = 50 private val RECENTS_LIMIT = 50
private var filesIgnoringSearch = ArrayList<ListItem>()
private var lastSearchedText = ""
override fun setupFragment(activity: SimpleActivity) { override fun setupFragment(activity: SimpleActivity) {
if (this.activity == null) { if (this.activity == null) {
@ -44,6 +46,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
recents_swipe_refresh?.isRefreshing = false recents_swipe_refresh?.isRefreshing = false
recents_list.beVisibleIf(recents.isNotEmpty()) recents_list.beVisibleIf(recents.isNotEmpty())
recents_placeholder.beVisibleIf(recents.isEmpty()) recents_placeholder.beVisibleIf(recents.isEmpty())
filesIgnoringSearch = recents
addItems(recents, false) addItems(recents, false)
if (context != null && currentViewType != context!!.config.getFolderViewType(currentPath)) { if (context != null && currentViewType != context!!.config.getFolderViewType(currentPath)) {
@ -78,7 +81,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
initDrawables() initDrawables()
} }
recents_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false recents_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false
} }
private fun setupLayoutManager() { 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<ListItem>
(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() { override fun finishActMode() {
getRecyclerAdapter()?.finishActMode() getRecyclerAdapter()?.finishActMode()

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.simplemobiletools.filemanager.pro.fragments.RecentsFragment xmlns:android="http://schemas.android.com/apk/res/android" <com.simplemobiletools.filemanager.pro.fragments.RecentsFragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/recents_fragment" android:id="@+id/recents_fragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -18,7 +19,8 @@
android:text="@string/no_items_found" android:text="@string/no_items_found"
android:textSize="@dimen/bigger_text_size" android:textSize="@dimen/bigger_text_size"
android:textStyle="italic" android:textStyle="italic"
android:visibility="gone" /> android:visibility="gone"
tools:visibility="visible" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/recents_swipe_refresh" android:id="@+id/recents_swipe_refresh"
@ -34,5 +36,6 @@
android:paddingTop="@dimen/medium_margin" android:paddingTop="@dimen/medium_margin"
android:scrollbars="none" android:scrollbars="none"
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" /> app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</com.simplemobiletools.filemanager.pro.fragments.RecentsFragment> </com.simplemobiletools.filemanager.pro.fragments.RecentsFragment>