diff --git a/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt b/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt index 328641e6a..cd7dbc78a 100644 --- a/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt +++ b/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt @@ -94,18 +94,19 @@ val PasswordItem.stableId: String enum class FilterMode { NoFilter, StrictDomain, - Fuzzy + Fuzzy, + Exact, } enum class SearchMode { RecursivelyInSubdirectories, - InCurrentDirectoryOnly + InCurrentDirectoryOnly, } enum class ListMode { FilesOnly, DirectoriesOnly, - AllEntries + AllEntries, } @OptIn(ExperimentalCoroutinesApi::class) @@ -219,6 +220,16 @@ constructor( .toList() .sortedWith(itemComparator) } + FilterMode.Exact -> { + prefilteredResultFlow + .filter { absoluteFile -> + absoluteFile.relativeTo(root).path.contains(searchAction.filter) + } + .map { it.toPasswordItem() } + .flowOn(dispatcherProvider.io()) + .toList() + .sortedWith(itemComparator) + } FilterMode.StrictDomain -> { check(searchAction.listMode == ListMode.FilesOnly) { "Searches with StrictDomain search mode can only list files"