[修复] 修复了目录规则和字典规则无法新增的问题。注意,不要在其他界面编辑目录规则,我还没重写那些界面,先将就一下罢 #609

This commit is contained in:
HapeLee
2026-02-03 01:47:27 +08:00
parent f21ff42e4c
commit 0b9ce9ddef
5 changed files with 44 additions and 32 deletions
@@ -212,15 +212,20 @@ fun TxtRuleScreen(
if (showEditSheet) {
RuleEditSheet(
rule = editingRule,
title = stringResource(R.string.dict_rule),
label1 = stringResource(R.string.url_rule),
label2 = stringResource(R.string.show_rule),
title = stringResource(R.string.txt_toc_rule),
label1 = stringResource(R.string.regex),
label2 = stringResource(R.string.example),
onDismissRequest = {
showEditSheet = false
editingRule = null
},
onSave = { updatedRule ->
viewModel.update(updatedRule)
//TODO:我很想把他改为自增主键,但为了兼容性日后再说
if (editingRule == null) {
viewModel.insert(updatedRule)
} else {
viewModel.update(updatedRule)
}
showEditSheet = false
editingRule = null
},
@@ -155,7 +155,7 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
}
override fun saveTxtTocRule(txtTocRule: TxtTocRule) {
viewModel.update(txtTocRule)
//viewModel.update(txtTocRule)
}
@SuppressLint("InflateParams")
@@ -280,7 +280,7 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
if (buttonView.isPressed) {
getItem(holder.layoutPosition)?.let {
it.enable = isChecked
viewModel.update(it)
//viewModel.update(it)
}
}
}
@@ -293,7 +293,7 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
setMessage(getString(R.string.sure_del) + "\n" + item.name)
noButton()
yesButton {
viewModel.delete(item)
//viewModel.delete(item)
}
}
}
@@ -315,7 +315,7 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
for ((index, item) in getItems().withIndex()) {
item.serialNumber = index + 1
}
viewModel.update(*getItems().toTypedArray())
//viewModel.update(*getItems().toTypedArray())
}
isMoved = false
}
@@ -90,10 +90,19 @@ class TxtTocRuleViewModel(
}
}
fun save(rule: TxtTocRule) {
viewModelScope.launch {
if (rule.id == 0L) {
repository.insert(rule)
} else {
repository.update(rule)
}
}
}
fun update(vararg rules: TxtTocRule) = viewModelScope.launch { repository.update(*rules) }
fun insert(vararg rules: TxtTocRule) = viewModelScope.launch { repository.insert(*rules) }
fun delete(vararg rules: TxtTocRule) = viewModelScope.launch { repository.delete(*rules) }
fun enableSelectionByIds(ids: Set<Long>) =
viewModelScope.launch { repository.enableByIds(ids, true) }
@@ -220,7 +220,11 @@ fun DictRuleScreen(
editingRule = null
},
onSave = { updatedRule ->
viewModel.update(updatedRule)
if (editingRule == null) {
viewModel.insert(updatedRule)
} else {
viewModel.update(updatedRule)
}
showEditSheet = false
editingRule = null
},