Quellcode durchsuchen

[优化] 替换规则的搜索可以搜索更多内容

HapeLee vor 7 Monaten
Ursprung
Commit
30414cfe15

+ 1 - 1
app/src/main/java/io/legado/app/base/BaseRuleViewModel.kt

@@ -69,7 +69,7 @@ abstract class BaseRuleViewModel<T : SelectableItem<ID>, Entity, ID, S : ListUiS
 
     open fun filterData(data: List<Entity>, searchKey: String, groupFilter: String): List<Entity> {
         @Suppress("DEPRECATION")
-        return filterData(data, if (groupFilter.isNotEmpty()) groupFilter else searchKey)
+        return filterData(data, groupFilter.ifEmpty { searchKey })
     }
 
     @OptIn(FlowPreview::class)

+ 14 - 3
app/src/main/java/io/legado/app/ui/replace/ReplaceRuleViewModel.kt

@@ -102,9 +102,20 @@ class ReplaceRuleViewModel(
             }
         }
 
-    override fun filterData(data: List<ReplaceRule>, key: String): List<ReplaceRule> =
-        if (key.isEmpty()) data
-        else data.filter { it.name.contains(key, ignoreCase = true) }
+    override fun filterData(
+        data: List<ReplaceRule>,
+        searchKey: String,
+        groupFilter: String
+    ): List<ReplaceRule> {
+        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(