fix:切换主题【翻页动画】未跟随新主题,仍保留上个主题的效果 #1491

This commit is contained in:
fansan
2026-06-18 18:25:49 +08:00
parent 7a62e677d6
commit 19540743ed
4 changed files with 34 additions and 7 deletions
@@ -713,6 +713,7 @@ sealed interface ConfigUpdateAction {
data object InvalidateTextPage : ConfigUpdateAction
data object UpdateLayout : ConfigUpdateAction
data object SubmitRenderTask : ConfigUpdateAction
data object UpdatePageAnim : ConfigUpdateAction
}
/**
@@ -836,13 +837,28 @@ sealed interface ConfigUpdate {
// --- Layout / style ---
data class StyleSelect(val index: Int) : ConfigUpdate {
override val actions = setOf(ConfigUpdateAction.UpdateBackground, ConfigUpdateAction.UpdateStyle, ConfigUpdateAction.ReloadContent, ConfigUpdateAction.UpdateSystemUi)
override val actions = setOf(
ConfigUpdateAction.UpdateBackground,
ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdateSystemUi,
ConfigUpdateAction.UpdatePageAnim
)
}
data class ShareLayout(val value: Boolean) : ConfigUpdate {
override val actions = setOf(ConfigUpdateAction.UpdateBackground, ConfigUpdateAction.UpdateStyle, ConfigUpdateAction.ReloadContent)
override val actions = setOf(
ConfigUpdateAction.UpdateBackground,
ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdatePageAnim
)
}
data class PageAnim(val value: Int) : ConfigUpdate {
override val actions = setOf(ConfigUpdateAction.UpdateBackground)
override val actions = setOf(
ConfigUpdateAction.UpdateBackground,
ConfigUpdateAction.UpdatePageAnim,
ConfigUpdateAction.ReloadContent
)
}
// --- Menu colors ---
@@ -600,6 +600,7 @@ class ReadBookController(
ConfigUpdateAction.InvalidateTextPage -> r.readView.invalidateTextPage()
ConfigUpdateAction.UpdateLayout -> ChapterProvider.upLayout()
ConfigUpdateAction.SubmitRenderTask -> r.readView.submitRenderTask()
ConfigUpdateAction.UpdatePageAnim -> r.readView.upPageAnim()
}
}
}
@@ -988,7 +988,12 @@ class ReadBookViewModel(
)
}
_effects.tryEmit(ReadBookEffect.UpdateReadViewConfig(
setOf(ConfigUpdateAction.UpdateBackground, ConfigUpdateAction.UpdateStyle, ConfigUpdateAction.ReloadContent)
setOf(
ConfigUpdateAction.UpdateBackground,
ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdatePageAnim
)
))
}
}
@@ -1007,7 +1012,8 @@ class ReadBookViewModel(
ConfigUpdateAction.UpdateBackgroundAlpha,
ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.UpdateSystemUi,
ConfigUpdateAction.ReloadContent
ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdatePageAnim
)
)
)
@@ -3429,7 +3435,12 @@ class ReadBookViewModel(
readBookStyleConfigRepository.importCurrentStyle(bytes)
_uiState.update { it.copy(styleConfig = buildStyleConfig()) }
_effects.tryEmit(ReadBookEffect.UpdateReadViewConfig(
setOf(ConfigUpdateAction.UpdateBackground, ConfigUpdateAction.UpdateStyle, ConfigUpdateAction.ReloadContent)
setOf(
ConfigUpdateAction.UpdateBackground,
ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdatePageAnim
)
))
context.getString(R.string.success)
}.onSuccess { message ->
@@ -341,7 +341,6 @@ fun GlobalThemePage(
onClick = {
ReadBook.book?.setPageAnim(-1)
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.PageAnim(index)))
onIntent(ReadBookIntent.PageAnimChanged)
dismiss()
},
)