fix(read): 修复阅读菜单与高亮规则功能

This commit is contained in:
HapeLee committed 2026-07-01 23:43:14 +08:00
1 parent 6e4917fb5d
commit da00f712bf
8 files changed
+461 -11

No files matched your search

@@ -181,6 +181,7 @@ data class HighlightRuleConfigUiState(
val editingRule: HighlightRule? = null, val editingRule: HighlightRule? = null,
val showNewRule: Boolean = false, val showNewRule: Boolean = false,
val deleteRule: HighlightRule? = null, val deleteRule: HighlightRule? = null,
val importState: BaseImportUiState<HighlightRule> = BaseImportUiState.Idle,
) )
@Stable @Stable
@@ -429,6 +430,21 @@ sealed interface ReadBookIntent {
data class RequestDeleteHighlightRule(val rule: HighlightRule) : ReadBookIntent data class RequestDeleteHighlightRule(val rule: HighlightRule) : ReadBookIntent
data object ConfirmDeleteHighlightRule : ReadBookIntent data object ConfirmDeleteHighlightRule : ReadBookIntent
data object DismissDeleteHighlightRule : ReadBookIntent data object DismissDeleteHighlightRule : ReadBookIntent
data class MoveHighlightRule(val from: Int, val to: Int) : ReadBookIntent
data object SaveHighlightRuleOrder : ReadBookIntent
data class ImportHighlightRuleSource(val text: String) : ReadBookIntent
data object OpenHighlightRuleImportPicker : ReadBookIntent
data class HighlightRuleImportFileSelected(val uri: Uri) : ReadBookIntent
data object CancelHighlightRuleImport : ReadBookIntent
data class ToggleHighlightRuleImportSelection(val index: Int) : ReadBookIntent
data class ToggleHighlightRuleImportAll(val isSelected: Boolean) : ReadBookIntent
data class UpdateHighlightRuleImportItem(
val index: Int,
val rule: HighlightRule,
) : ReadBookIntent
data object SaveImportedHighlightRules : ReadBookIntent
data object ExportHighlightRules : ReadBookIntent
data class ExportHighlightRulesToFile(val uri: Uri) : ReadBookIntent
// Icon picker — file IO handled by ViewModel // Icon picker — file IO handled by ViewModel
data class SaveMenuCustomIcon(val id: String, val uri: Uri) : ReadBookIntent data class SaveMenuCustomIcon(val id: String, val uri: Uri) : ReadBookIntent
@@ -645,6 +661,8 @@ sealed interface ReadBookEffect {
data object OpenHttpTtsImportPicker : ReadBookEffect data object OpenHttpTtsImportPicker : ReadBookEffect
data object OpenHttpTtsExportPicker : ReadBookEffect data object OpenHttpTtsExportPicker : ReadBookEffect
data class OpenHttpTtsLogin(val engineId: Long) : ReadBookEffect data class OpenHttpTtsLogin(val engineId: Long) : ReadBookEffect
data object OpenHighlightRuleImportPicker : ReadBookEffect
data object OpenHighlightRuleExportPicker : ReadBookEffect
// Day/night toggle // Day/night toggle
data object ToggleDayNight : ReadBookEffect data object ToggleDayNight : ReadBookEffect
@@ -1128,6 +1146,9 @@ sealed interface ConfigUpdate {
data class ReadBodyToLh(val value: Boolean) : ConfigUpdate { data class ReadBodyToLh(val value: Boolean) : ConfigUpdate {
override val actions = setOf(ConfigUpdateAction.ReloadContent) override val actions = setOf(ConfigUpdateAction.ReloadContent)
} }
data class DefaultSourceChangeAll(val value: Boolean) : ConfigUpdate {
override val actions = emptySet<ConfigUpdateAction>()
}
data class TextFullJustify(val value: Boolean) : ConfigUpdate { data class TextFullJustify(val value: Boolean) : ConfigUpdate {
override val actions = setOf(ConfigUpdateAction.ReloadContent) override val actions = setOf(ConfigUpdateAction.ReloadContent)
} }
@@ -177,6 +177,16 @@ class ReadBookController(
newRefs.readView.upBattery(activity.sysBattery) newRefs.readView.upBattery(activity.sysBattery)
} }
fun onMenuVisibilityChanged(visible: Boolean) {
val autoPager = refs?.readView?.autoPager ?: return
if (!autoPager.isRunning) return