Просмотр исходного кода

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

fix:切换主题【翻页动画】未跟随新主题,仍保留上个主题的效果 #1491
Kudomaga 4 месяцев назад
Родитель
Сommit
9acedf7f7a

+ 19 - 3
app/src/main/java/io/legado/app/ui/book/read/ReadBookContract.kt

@@ -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 ---

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt

@@ -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()
                     }
                 }
             }

+ 14 - 3
app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

@@ -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 ->

+ 0 - 1
app/src/main/java/io/legado/app/ui/book/read/sheet/GlobalThemePage.kt

@@ -341,7 +341,6 @@ fun GlobalThemePage(
                             onClick = {
                                 ReadBook.book?.setPageAnim(-1)
                                 onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.PageAnim(index)))
-                                onIntent(ReadBookIntent.PageAnimChanged)
                                 dismiss()
                             },
                         )