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.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

View File

@ -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() {

View File

@ -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<ListItem>()
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<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() {
getRecyclerAdapter()?.finishActMode()

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<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:tools="http://schemas.android.com/tools"
android:id="@+id/recents_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -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" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/recents_swipe_refresh"
@ -34,5 +36,6 @@
android:paddingTop="@dimen/medium_margin"
android:scrollbars="none"
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</com.simplemobiletools.filemanager.pro.fragments.RecentsFragment>