From 30414cfe151c33261ad4f012270e9b57f474e79b Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sat, 21 Mar 2026 04:03:15 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E8=A7=84=E5=88=99=E7=9A=84=E6=90=9C=E7=B4=A2=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=9B=B4=E5=A4=9A=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/base/BaseRuleViewModel.kt | 2 +- .../app/ui/replace/ReplaceRuleViewModel.kt | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) 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(