Parcourir la source

优化关闭模糊封面 书籍详情的显示效果

a328929 il y a 3 mois
Parent
commit
3f10b76b65

+ 4 - 0
app/src/main/java/io/legado/app/ui/book/info/BookInfoBackdropStyle.kt

@@ -5,6 +5,7 @@ import io.legado.app.ui.config.themeConfig.ThemeConfig
 internal data class BookInfoBackdropStyle(
 internal data class BookInfoBackdropStyle(
     val showCover: Boolean,
     val showCover: Boolean,
     val blurCover: Boolean,
     val blurCover: Boolean,
+    val applySeedOverlay: Boolean,
 )
 )
 
 
 internal fun resolveBookInfoBackdropStyle(backgroundMode: String): BookInfoBackdropStyle {
 internal fun resolveBookInfoBackdropStyle(backgroundMode: String): BookInfoBackdropStyle {
@@ -12,16 +13,19 @@ internal fun resolveBookInfoBackdropStyle(backgroundMode: String): BookInfoBackd
         ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_OFF -> BookInfoBackdropStyle(
         ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_OFF -> BookInfoBackdropStyle(
             showCover = true,
             showCover = true,
             blurCover = false,
             blurCover = false,
+            applySeedOverlay = true,
         )
         )
 
 
         ThemeConfig.BOOK_INFO_BACKGROUND_COVER_HIDDEN -> BookInfoBackdropStyle(
         ThemeConfig.BOOK_INFO_BACKGROUND_COVER_HIDDEN -> BookInfoBackdropStyle(
             showCover = false,
             showCover = false,
             blurCover = false,
             blurCover = false,
+            applySeedOverlay = false,
         )
         )
 
 
         else -> BookInfoBackdropStyle(
         else -> BookInfoBackdropStyle(
             showCover = true,
             showCover = true,
             blurCover = true,
             blurCover = true,
+            applySeedOverlay = true,
         )
         )
     }
     }
 }
 }

+ 6 - 6
app/src/main/java/io/legado/app/ui/book/info/BookInfoScreen.kt

@@ -280,7 +280,7 @@ private fun BookInfoScreenContent(
                                     onNetworkCoverLoadError(book.coverPath)
                                     onNetworkCoverLoadError(book.coverPath)
                                 },
                                 },
                                 usesDefaultCover = usesDefaultCover,
                                 usesDefaultCover = usesDefaultCover,
-                                blurCover = resolvedBackdropStyle.blurCover,
+                                applySeedOverlay = resolvedBackdropStyle.applySeedOverlay,
                                 sharedTransitionScope = sharedTransitionScope,
                                 sharedTransitionScope = sharedTransitionScope,
                                 animatedVisibilityScope = animatedVisibilityScope,
                                 animatedVisibilityScope = animatedVisibilityScope,
                                 sharedCoverKey = sharedCoverKey,
                                 sharedCoverKey = sharedCoverKey,
@@ -682,7 +682,7 @@ private fun BookInfoBackdrop(
                 }
                 }
             )
             )
         }
         }
-        if (style.blurCover) {
+        if (style.applySeedOverlay) {
             Box(
             Box(
                 modifier = Modifier
                 modifier = Modifier
                     .fillMaxSize()
                     .fillMaxSize()
@@ -696,12 +696,12 @@ private fun BookInfoBackdrop(
                     Brush.verticalGradient(
                     Brush.verticalGradient(
                         colorStops = arrayOf(
                         colorStops = arrayOf(
                             0f to Color.Transparent,
                             0f to Color.Transparent,
-                            0.20f to if (style.blurCover) {
+                            0.20f to if (style.applySeedOverlay) {
                                 seedOverlay.copy(alpha = 0.10f)
                                 seedOverlay.copy(alpha = 0.10f)
                             } else {
                             } else {
                                 Color.Transparent
                                 Color.Transparent
                             },
                             },
-                            0.40f to if (style.blurCover) {
+                            0.40f to if (style.applySeedOverlay) {
                                 seedOverlay.copy(alpha = 0.18f)
                                 seedOverlay.copy(alpha = 0.18f)
                             } else {
                             } else {
                                 LegadoTheme.colorScheme.surface.copy(alpha = 0.35f)
                                 LegadoTheme.colorScheme.surface.copy(alpha = 0.35f)
@@ -827,7 +827,7 @@ private fun BookInfoHeader(
     onOriginClick: () -> Unit,
     onOriginClick: () -> Unit,
     onNetworkCoverLoadError: () -> Unit,
     onNetworkCoverLoadError: () -> Unit,
     usesDefaultCover: Boolean,
     usesDefaultCover: Boolean,
-    blurCover: Boolean,
+    applySeedOverlay: Boolean,
     sharedTransitionScope: SharedTransitionScope?,
     sharedTransitionScope: SharedTransitionScope?,
     animatedVisibilityScope: AnimatedVisibilityScope?,
     animatedVisibilityScope: AnimatedVisibilityScope?,
     sharedCoverKey: String?,
     sharedCoverKey: String?,
@@ -840,7 +840,7 @@ private fun BookInfoHeader(
                 Brush.verticalGradient(
                 Brush.verticalGradient(
                     colors = listOf(
                     colors = listOf(
                         Color.Transparent,
                         Color.Transparent,
-                        if (blurCover) {
+                        if (applySeedOverlay) {
                             lerp(LegadoTheme.colorScheme.surface, LegadoTheme.seedColor, 0.08f)
                             lerp(LegadoTheme.colorScheme.surface, LegadoTheme.seedColor, 0.08f)
                                 .copy(alpha = 0.5f)
                                 .copy(alpha = 0.5f)
                         } else {
                         } else {

+ 15 - 3
app/src/test/java/io/legado/app/ui/book/info/BookInfoBackdropStyleTest.kt

@@ -9,15 +9,27 @@ class BookInfoBackdropStyleTest {
     @Test
     @Test
     fun backgroundModesKeepTheirExpectedCoverTreatment() {
     fun backgroundModesKeepTheirExpectedCoverTreatment() {
         assertEquals(
         assertEquals(
-            BookInfoBackdropStyle(showCover = true, blurCover = false),
+            BookInfoBackdropStyle(
+                showCover = true,
+                blurCover = false,
+                applySeedOverlay = true,
+            ),
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_OFF)
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_OFF)
         )
         )
         assertEquals(
         assertEquals(
-            BookInfoBackdropStyle(showCover = true, blurCover = true),
+            BookInfoBackdropStyle(
+                showCover = true,
+                blurCover = true,
+                applySeedOverlay = true,
+            ),
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_ON)
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_ON)
         )
         )
         assertEquals(
         assertEquals(
-            BookInfoBackdropStyle(showCover = false, blurCover = false),
+            BookInfoBackdropStyle(
+                showCover = false,
+                blurCover = false,
+                applySeedOverlay = false,
+            ),
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_COVER_HIDDEN)
             resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_COVER_HIDDEN)
         )
         )
     }
     }