diff --git a/app/src/main/java/io/legado/app/base/BaseRuleViewModel.kt b/app/src/main/java/io/legado/app/base/BaseRuleViewModel.kt index 9290cd7e4..4181f0791 100644 --- a/app/src/main/java/io/legado/app/base/BaseRuleViewModel.kt +++ b/app/src/main/java/io/legado/app/base/BaseRuleViewModel.kt @@ -69,7 +69,7 @@ abstract class BaseRuleViewModel, Entity, ID, S : ListUiS open fun filterData(data: List, searchKey: String, groupFilter: String): List { @Suppress("DEPRECATION") - return filterData(data, if (groupFilter.isNotEmpty()) groupFilter else searchKey) + return filterData(data, groupFilter.ifEmpty { searchKey }) } @OptIn(FlowPreview::class) diff --git a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleViewModel.kt b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleViewModel.kt index 987f650a3..248d4ec26 100644 --- a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleViewModel.kt @@ -102,9 +102,20 @@ class ReplaceRuleViewModel( } } - override fun filterData(data: List, key: String): List = - if (key.isEmpty()) data - else data.filter { it.name.contains(key, ignoreCase = true) } + override fun filterData( + data: List, + searchKey: String, + groupFilter: String + ): List { + return if (searchKey.isEmpty() && groupFilter.isEmpty()) data + else data.filter { + val key = searchKey.ifEmpty { groupFilter } + it.name.contains(key, ignoreCase = true) + || it.pattern.contains(key, ignoreCase = true) + || it.replacement.contains(key, ignoreCase = true) + || it.scope?.contains(key, ignoreCase = true) == true + } + } override fun composeUiState(