Fix search not working in drawer category views#4586
Conversation
VishnuSanal
left a comment
There was a problem hiding this comment.
awesome, LGTM 🚀 thanks for contributing to amaze :)
| mainActivity: MainActivity, | ||
| query: String, | ||
| ): LiveData<List<SearchResult>> { | ||
| val currentMainFragment = mainActivity.currentMainFragment |
There was a problem hiding this comment.
This should follow the structure of the normal search, and launch to a different coroutine. It also misses the other search modes (index and deep), which should probably be disabled completely in some CUSTOM modes.
There was a problem hiding this comment.
Thanks, that makes sense.
I see the issue — this is currently handling CUSTOM / TRASH_BIN inline inside basicSearch() instead of following the existing search structure.
I’ll revisit this and rework it to align more closely with the normal search pattern.
cb149a4 to
a3d2a81
Compare
|
I pushed an updated implementation that follows the normal search structure more closely. Instead of handling CUSTOM / TRASH_BIN inline inside Indexed and deep search escalation are also disabled for these views since they do not support filesystem-backed search modes. Added focused
Quick Access remains unverified (no items available to test), as noted in the original description. |
a3d2a81 to
9cb6bea
Compare
Drawer categories (Quick Access, Recent Files, Images, Videos,
Audio, Documents, APKs, Trash Bin) use numeric paths ("0"–"7")
instead of real filesystem directories.
BasicSearch expects a filesystem path, so searches silently returned
no results when run from these views.
When the current view uses OpenMode.CUSTOM or OpenMode.TRASH_BIN,
search now uses ListElementsSearch to filter the visible dataset
(MainFragmentViewModel.listElements) instead of performing a
filesystem search.
Indexed and deep search modes are disabled for these views because
they do not support filesystem-backed search escalation.
Add ListElementsSearch unit tests covering matching, back/header
filtering, and no-result behavior.
9cb6bea to
928a624
Compare


Description
Drawer categories (Quick Access, Recent Files, Images, Videos, Audio,
Documents, APKs, Trash Bin) use numeric paths ("0"–"7") instead of real
filesystem directories.
BasicSearch expects a filesystem path, so searches silently returned no
results when run from these views.
When the current view uses
OpenMode.CUSTOMorOpenMode.TRASH_BIN,search now runs against the visible dataset
(
MainFragmentViewModel.listElements) instead of the filesystem.Issue tracker
Fixes #4561
Automatic tests
Manual tests
Device: Pixel 9 Pro (emulator)
OS: Android 16 (API 36)
Rooted: No
Build: debug
Verified search in:
Could not verify:
Build tasks success
Successfully running following tasks locally:
./gradlew assembleDebug./gradlew spotlessCheck