Merge pull request #1495 from fansangg/fix/layout-page-anim-switch

fix:切换主题【翻页动画】未跟随新主题,仍保留上个主题的效果 #1491
This commit is contained in:
Kudomaga
2026-06-19 00:19:39 +08:00
committed by GitHub
4 changed files with 34 additions and 7 deletions
@@ -713,6 +713,7 @@ sealed interface ConfigUpdateAction {
data object InvalidateTextPage : ConfigUpdateAction data object InvalidateTextPage : ConfigUpdateAction
data object UpdateLayout : ConfigUpdateAction data object UpdateLayout : ConfigUpdateAction
data object SubmitRenderTask : ConfigUpdateAction data object SubmitRenderTask : ConfigUpdateAction
data object UpdatePageAnim : ConfigUpdateAction
} }
/** /**
@@ -836,13 +837,28 @@ sealed interface ConfigUpdate {
// --- Layout / style --- // --- Layout / style ---
data class StyleSelect(val index: Int) : ConfigUpdate { 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 { 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 { 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 --- // --- Menu colors ---
@@ -600,6 +600,7 @@ class ReadBookController(
ConfigUpdateAction.InvalidateTextPage -> r.readView.invalidateTextPage() ConfigUpdateAction.InvalidateTextPage -> r.readView.invalidateTextPage()
ConfigUpdateAction.UpdateLayout -> ChapterProvider.upLayout() ConfigUpdateAction.UpdateLayout -> ChapterProvider.upLayout()
ConfigUpdateAction.SubmitRenderTask -> r.readView.submitRenderTask() ConfigUpdateAction.SubmitRenderTask -> r.readView.submitRenderTask()
ConfigUpdateAction.UpdatePageAnim -> r.readView.upPageAnim()
} }
} }
} }
@@ -988,7 +988,12 @@ class ReadBookViewModel(
) )
} }
_effects.tryEmit(ReadBookEffect.UpdateReadViewConfig( _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.UpdateBackgroundAlpha,
ConfigUpdateAction.UpdateStyle, ConfigUpdateAction.UpdateStyle,
ConfigUpdateAction.UpdateSystemUi, ConfigUpdateAction.UpdateSystemUi,
ConfigUpdateAction.ReloadContent ConfigUpdateAction.ReloadContent,
ConfigUpdateAction.UpdatePageAnim
) )
) )
) )
@@ -3429,7 +3435,12 @@ class ReadBookViewModel(
readBookStyleConfigRepository.importCurrentStyle(bytes) readBookStyleConfigRepository.importCurrentStyle(bytes)
_uiState.update { it.copy(styleConfig = buildStyleConfig()) } _uiState.update { it.copy(styleConfig = buildStyleConfig()) }
_effects.tryEmit(ReadBookEffect.UpdateReadViewConfig( _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) context.getString(R.string.success)
}.onSuccess { message -> }.onSuccess { message ->
@@ -341,7 +341,6 @@ fun GlobalThemePage(
onClick = { onClick = {
ReadBook.book?.setPageAnim(-1) ReadBook.book?.setPageAnim(-1)
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.PageAnim(index))) onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.PageAnim(index)))
onIntent(ReadBookIntent.PageAnimChanged)
dismiss() dismiss()
}, },
) )