Skip to content

Commit f01bcb0

Browse files
committed
allow searching Recents fragments too
1 parent cf9326d commit f01bcb0

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import com.simplemobiletools.filemanager.pro.extensions.config
3131
import com.simplemobiletools.filemanager.pro.extensions.tryOpenPathIntent
3232
import com.simplemobiletools.filemanager.pro.fragments.ItemsFragment
3333
import com.simplemobiletools.filemanager.pro.fragments.MyViewPagerFragment
34+
import com.simplemobiletools.filemanager.pro.fragments.RecentsFragment
3435
import com.simplemobiletools.filemanager.pro.fragments.StorageFragment
3536
import com.simplemobiletools.filemanager.pro.helpers.MAX_COLUMN_COUNT
3637
import com.simplemobiletools.filemanager.pro.helpers.RootHelpers
@@ -143,13 +144,15 @@ class MainActivity : SimpleActivity() {
143144
}
144145

145146
override fun onBackPressed() {
146-
if (getCurrentFragment() !is ItemsFragment) {
147+
if (getCurrentFragment() is StorageFragment) {
147148
super.onBackPressed()
148149
return
149150
}
150151

151152
if (main_menu.isSearchOpen) {
152153
main_menu.closeSearch()
154+
} else if (getCurrentFragment() is RecentsFragment) {
155+
super.onBackPressed()
153156
} else if (getCurrentFragment()!!.breadcrumbs.getItemCount() <= 1) {
154157
if (!wasBackJustPressed && config.pressBackTwice) {
155158
wasBackJustPressed = true

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
7070
if (currentPath != "") {
7171
breadcrumbs.updateColor(textColor)
7272
}
73-
items_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false
73+
74+
items_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false
7475
}
7576

7677
override fun setupFontSize() {
@@ -300,6 +301,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
300301
return
301302
}
302303

304+
items_swipe_refresh.isEnabled = text.isEmpty() && activity?.config?.enablePullToRefresh != false
303305
when {
304306
searchText.isEmpty() -> {
305307
items_fastscroller.beVisible()
@@ -396,7 +398,6 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
396398
fun searchOpened() {
397399
isSearchOpen = true
398400
lastSearchedText = ""
399-
items_swipe_refresh.isEnabled = false
400401
}
401402

402403
fun searchClosed() {

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import java.io.File
2828

2929
class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener {
3030
private val RECENTS_LIMIT = 50
31+
private var filesIgnoringSearch = ArrayList<ListItem>()
32+
private var lastSearchedText = ""
3133

3234
override fun setupFragment(activity: SimpleActivity) {
3335
if (this.activity == null) {
@@ -44,6 +46,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
4446
recents_swipe_refresh?.isRefreshing = false
4547
recents_list.beVisibleIf(recents.isNotEmpty())
4648
recents_placeholder.beVisibleIf(recents.isEmpty())
49+
filesIgnoringSearch = recents
4750
addItems(recents, false)
4851

4952
if (context != null && currentViewType != context!!.config.getFolderViewType(currentPath)) {
@@ -78,7 +81,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
7881
initDrawables()
7982
}
8083

81-
recents_swipe_refresh.isEnabled = activity?.config?.enablePullToRefresh != false
84+
recents_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false
8285
}
8386

8487
private fun setupLayoutManager() {
@@ -225,7 +228,13 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
225228
}
226229
}
227230

228-
override fun searchQueryChanged(text: String) {}
231+
override fun searchQueryChanged(text: String) {
232+
lastSearchedText = text
233+
val filtered = filesIgnoringSearch.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList<ListItem>
234+
(recents_list.adapter as? ItemsAdapter)?.updateItems(filtered, text)
235+
recents_placeholder.beVisibleIf(filtered.isEmpty())
236+
recents_swipe_refresh.isEnabled = lastSearchedText.isEmpty() && activity?.config?.enablePullToRefresh != false
237+
}
229238

230239
override fun finishActMode() {
231240
getRecyclerAdapter()?.finishActMode()

app/src/main/res/layout/recents_fragment.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<com.simplemobiletools.filemanager.pro.fragments.RecentsFragment xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
45
android:id="@+id/recents_fragment"
56
android:layout_width="match_parent"
67
android:layout_height="match_parent">
@@ -18,7 +19,8 @@
1819
android:text="@string/no_items_found"
1920
android:textSize="@dimen/bigger_text_size"
2021
android:textStyle="italic"
21-
android:visibility="gone" />
22+
android:visibility="gone"
23+
tools:visibility="visible" />
2224

2325
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
2426
android:id="@+id/recents_swipe_refresh"
@@ -34,5 +36,6 @@
3436
android:paddingTop="@dimen/medium_margin"
3537
android:scrollbars="none"
3638
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
39+
3740
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
3841
</com.simplemobiletools.filemanager.pro.fragments.RecentsFragment>

0 commit comments

Comments
 (0)