a328929 4 месяцев назад
Родитель
Сommit
94e46827b1

+ 4 - 2
app/src/main/java/io/legado/app/help/storage/Restore.kt

@@ -400,11 +400,13 @@ object Restore : KoinComponent {
         val restoreNetworkCoverBackground =
             legacyBookInfoBackground != null &&
                     PreferKey.bookInfoNetworkCoverBackground !in map &&
-                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoBackgroundBlur)
+                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoBackgroundBlur) &&
+                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoNetworkCoverBackground)
         val restoreDefaultCoverBackground =
             legacyBookInfoBackground != null &&
                     PreferKey.bookInfoDefaultCoverBackground !in map &&
-                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoBackgroundBlur)
+                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoBackgroundBlur) &&
+                    BackupConfig.keyIsNotIgnore(PreferKey.bookInfoDefaultCoverBackground)
         appCtx.defaultSharedPreferences.edit {
             map.forEach { (key, value) ->
                 if (BackupConfig.keyIsNotIgnore(key)) {

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

@@ -620,6 +620,15 @@ private fun BookInfoBackdrop(
     usesDefaultCover: Boolean,
     onNetworkCoverLoadError: (String?) -> Unit,
 ) {
+    if (!style.showCover) {
+        Box(
+            modifier = Modifier
+                .fillMaxSize()
+                .clearAndSetSemantics { }
+                .background(LegadoTheme.colorScheme.surface)
+        )
+        return
+    }
     val backdropState = remember(
         book.name,
         book.author,
@@ -644,36 +653,34 @@ private fun BookInfoBackdrop(
             .fillMaxSize()
             .clearAndSetSemantics { }
     ) {
-        if (style.showCover) {
-            Crossfade(
-                targetState = backdropState,
-                animationSpec = tween(800),
-                label = "BackdropCrossfade"
-            ) { currentBook ->
-                BookCoverImage(
-                    name = currentBook.name,
-                    author = currentBook.author,
-                    path = currentBook.coverPath,
-                    sourceOrigin = currentBook.sourceOrigin,
-                    memoryCacheKey = currentBook.coverPath?.let { "$it#book-info-backdrop" },
-                    modifier = Modifier
-                        .fillMaxWidth()
-                        .height(480.dp)
-                        .then(
-                            if (style.blurCover) {
-                                Modifier.blur(24.dp)
-                            } else {
-                                Modifier
-                            }
-                        ),
-                    contentScale = ContentScale.Crop,
-                    showLoadingPlaceholder = false,
-                    onError = { onNetworkCoverLoadError(currentBook.coverPath) },
-                    requestBuilder = {
-                        size(Size(384, 384))
-                    }
-                )
-            }
+        Crossfade(
+            targetState = backdropState,
+            animationSpec = tween(800),
+            label = "BackdropCrossfade"
+        ) { currentBook ->
+            BookCoverImage(
+                name = currentBook.name,
+                author = currentBook.author,
+                path = currentBook.coverPath,
+                sourceOrigin = currentBook.sourceOrigin,
+                memoryCacheKey = currentBook.coverPath?.let { "$it#book-info-backdrop" },
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .height(480.dp)
+                    .then(
+                        if (style.blurCover) {
+                            Modifier.blur(24.dp)
+                        } else {
+                            Modifier
+                        }
+                    ),
+                contentScale = ContentScale.Crop,
+                showLoadingPlaceholder = false,
+                onError = { onNetworkCoverLoadError(currentBook.coverPath) },
+                requestBuilder = {
+                    size(Size(384, 384))
+                }
+            )
         }
         if (style.blurCover) {
             Box(

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

@@ -1,5 +1,6 @@
 package io.legado.app.ui.book.info
 
+import io.legado.app.ui.config.themeConfig.ThemeConfig
 import org.junit.Assert.assertEquals
 import org.junit.Test
 
@@ -9,15 +10,15 @@ class BookInfoBackdropStyleTest {
     fun backgroundModesKeepTheirExpectedCoverTreatment() {
         assertEquals(
             BookInfoBackdropStyle(showCover = true, blurCover = false),
-            resolveBookInfoBackdropStyle("off")
+            resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_OFF)
         )
         assertEquals(
             BookInfoBackdropStyle(showCover = true, blurCover = true),
-            resolveBookInfoBackdropStyle("on")
+            resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_BLUR_ON)
         )
         assertEquals(
             BookInfoBackdropStyle(showCover = false, blurCover = false),
-            resolveBookInfoBackdropStyle("off_for_default")
+            resolveBookInfoBackdropStyle(ThemeConfig.BOOK_INFO_BACKGROUND_COVER_HIDDEN)
         )
     }
 }