From dfb5f266ccf4dc8b00c6714d2b9b20e7e106853e Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Thu, 18 Jun 2026 00:30:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=96=E8=BE=91=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E8=A7=84=E5=88=99=E6=97=B6=E4=BF=9D=E6=8C=81=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/replace/edit/ReplaceEditViewModel.kt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt index 9983b13ff..4a3647426 100644 --- a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt @@ -199,8 +199,9 @@ class ReplaceEditViewModel( viewModelScope.launch(Dispatchers.IO) { val state = _uiState.value - val rule = ReplaceRule().apply { - id = if (state.id <= 0) System.currentTimeMillis() else state.id + val existingRule = if (state.id > 0) replaceRuleDao.findById(state.id) else null + val rule = (existingRule ?: ReplaceRule()).apply { + id = existingRule?.id ?: if (state.id <= 0) System.currentTimeMillis() else state.id name = state.name group = if (state.group == "默认" || state.group.isBlank()) null else state.group pattern = state.pattern @@ -213,11 +214,7 @@ class ReplaceEditViewModel( timeoutMillisecond = state.timeout.toLongOrNull() ?: 3000L } - if (state.id <= 0) { - rule.order = replaceRuleDao.maxOrder + 1 - } - - if (rule.order == Int.MIN_VALUE) { + if (existingRule == null && rule.order == Int.MIN_VALUE) { rule.order = replaceRuleDao.maxOrder + 1 }