fix(read): 修复阅读菜单与高亮规则功能
This commit is contained in:
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
|
||||||