[修复] 修复了目录规则和字典规则无法新增的问题。注意,不要在其他界面编辑目录规则,我还没重写那些界面,先将就一下罢 #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
+16 -22
View File
@@ -289,36 +289,30 @@ jobs:
- name: 获取 Commit 记录
id: get_commits
run: |
# prepare Job 中计算出的日志起点 Tag (LAST_TAG_FOR_LOG)
LAST_TAG="${{ needs.prepare.outputs.latest_tag }}"
IS_RELEASE="${{ needs.prepare.outputs.is_release }}"
# 获取从上一个 Tag 到当前 HEAD 的所有 Commit 消息
# --no-merges: 排除合并提交
COMMIT_LOG=$(git log "$LAST_TAG"..HEAD --pretty=format:"* %s" --no-merges)
if [ -z "$COMMIT_LOG" ]; then
RELEASE_BODY=$(cat <<EOF
### 更新内容
- 没有新的 Commit 记录.
EOF
)
CONTENT="- 没有新的 Commit 记录."
else
RELEASE_BODY=$(cat <<EOF
### 更新内容
$COMMIT_LOG
EOF
)
CONTENT="$COMMIT_LOG"
fi
# 设置 step 输出
echo "release_body<<EOF" >> $GITHUB_OUTPUT
echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "生成的 Release Body:"
echo "$RELEASE_BODY"
{
echo "release_body<<EOF"
if [[ "$IS_RELEASE" != "true" ]]; then
echo "**此版本为测试版,会存在不稳定问题。**"
echo ""
fi
echo "### 更新内容"
echo ""
echo "$CONTENT"
echo "EOF"
} >> $GITHUB_OUTPUT
echo "Release Body 已生成。"
- name: 创建 Tag
run: |
@@ -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
},