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

分离紧凑模式,现在可分别调整封面大小和精简详情

HapeLee 5 месяцев назад
Родитель
Сommit
f65ada7cb9

+ 4 - 1
.claude/settings.local.json

@@ -98,7 +98,10 @@
       "Bash(findstr /i \"material3.*sources\")",
       "Bash(findstr /i \"material3.*sources\")",
       "WebFetch(domain:android.googlesource.com)",
       "WebFetch(domain:android.googlesource.com)",
       "Read(//c/Users//**)",
       "Read(//c/Users//**)",
-      "Read(//c/Users/**)"
+      "Read(//c/Users/**)",
+      "Bash(Get-ChildItem -Path \"D:\\\\AndroidPrj\\\\legado-with-MD3\" -Directory -Depth 0)",
+      "Bash(Select-Object Name)",
+      "PowerShell(Get-ChildItem -Path \"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\app\\\\src\\\\main\\\\java\\\\io\\\\legado\\\\app\" -Directory -Depth 1 | ForEach-Object { $_.FullName.Replace\\(\"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\app\\\\src\\\\main\\\\java\\\\io\\\\legado\\\\app\\\\\", \"\"\\) })"
     ]
     ]
   }
   }
 }
 }

+ 1 - 0
app/src/main/java/io/legado/app/constant/PreferKey.kt

@@ -272,6 +272,7 @@ object PreferKey {
     const val bookshelfCardColorDark = "bookshelfCardColorDark"
     const val bookshelfCardColorDark = "bookshelfCardColorDark"
     const val bookshelfGroupListStyle = "bookshelfGroupListStyle"
     const val bookshelfGroupListStyle = "bookshelfGroupListStyle"
     const val bookshelfGroupCoverCount = "bookshelfGroupCoverCount"
     const val bookshelfGroupCoverCount = "bookshelfGroupCoverCount"
+    const val bookshelfListCoverWidth = "bookshelfListCoverWidth"
 
 
     const val exploreLayoutGridLandscape = "exploreLayoutGridLandscape"
     const val exploreLayoutGridLandscape = "exploreLayoutGridLandscape"
 
 

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt

@@ -352,7 +352,7 @@ class BookSourceEditActivity :
             add(EditEntity("imageDecode", cr.imageDecode, R.string.rule_image_decode))
             add(EditEntity("imageDecode", cr.imageDecode, R.string.rule_image_decode))
             add(EditEntity("payAction", cr.payAction, R.string.rule_pay_action))
             add(EditEntity("payAction", cr.payAction, R.string.rule_pay_action))
         }
         }
-        // 段评
+
 //        val rr = bs.getReviewRule()
 //        val rr = bs.getReviewRule()
 //        reviewEntities.clear()
 //        reviewEntities.clear()
 //        reviewEntities.apply {
 //        reviewEntities.apply {

+ 8 - 1
app/src/main/java/io/legado/app/ui/config/bookshelfConfig/BookshelfConfig.kt

@@ -288,12 +288,19 @@ object BookshelfConfig {
     val bookshelfGroupListStyleState: State<Int> get() = _bookshelfGroupListStyle.state
     val bookshelfGroupListStyleState: State<Int> get() = _bookshelfGroupListStyle.state
 
 
     /**
     /**
-     * 文件夹在列表模式下横排封面的数量
+     * 书架文件夹在列表模式下横排封面的数量
      */
      */
     private val _bookshelfGroupCoverCount = prefStateDelegate(PreferKey.bookshelfGroupCoverCount, 4)
     private val _bookshelfGroupCoverCount = prefStateDelegate(PreferKey.bookshelfGroupCoverCount, 4)
     var bookshelfGroupCoverCount by _bookshelfGroupCoverCount
     var bookshelfGroupCoverCount by _bookshelfGroupCoverCount
     val bookshelfGroupCoverCountState: State<Int> get() = _bookshelfGroupCoverCount.state
     val bookshelfGroupCoverCountState: State<Int> get() = _bookshelfGroupCoverCount.state
 
 
+    /**
+     * 书架列表模式下封面宽度
+     */
+    private val _bookshelfListCoverWidth = prefStateDelegate(PreferKey.bookshelfListCoverWidth, 84)
+    var bookshelfListCoverWidth by _bookshelfListCoverWidth
+    val bookshelfListCoverWidthState: State<Int> get() = _bookshelfListCoverWidth.state
+
     /**
     /**
      * 书架搜索按钮是否直接跳转搜索页
      * 书架搜索按钮是否直接跳转搜索页
      */
      */

+ 5 - 1
app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt

@@ -83,6 +83,7 @@ fun BookshelfItem(
     coverShadow: Boolean = false,
     coverShadow: Boolean = false,
     titleColor: Color? = null,
     titleColor: Color? = null,
     descAnnotated: AnnotatedString? = null,
     descAnnotated: AnnotatedString? = null,
+    coverWidth: Int = 84,
     onClick: () -> Unit,
     onClick: () -> Unit,
     onLongClick: (() -> Unit)?
     onLongClick: (() -> Unit)?
 ) {
 ) {
@@ -193,7 +194,7 @@ fun BookshelfItem(
                     Box(
                     Box(
                         modifier = Modifier
                         modifier = Modifier
                             .align(Alignment.Top)
                             .align(Alignment.Top)
-                            .width(if (!isCompact) 84.dp else 56.dp)
+                            .width(coverWidth.dp)
                     ) {
                     ) {
                         Box(
                         Box(
                             modifier = Modifier
                             modifier = Modifier
@@ -433,6 +434,7 @@ fun BookGroupItemGrid(
         titleCenter = titleCenter,
         titleCenter = titleCenter,
         titleMaxLines = titleMaxLines,
         titleMaxLines = titleMaxLines,
         coverShadow = coverShadow,
         coverShadow = coverShadow,
+        coverWidth = 84,
         onClick = onClick,
         onClick = onClick,
         onLongClick = onLongClick
         onLongClick = onLongClick
     )
     )
@@ -488,6 +490,7 @@ fun BookGroupItemList(
         titleCenter = titleCenter,
         titleCenter = titleCenter,
         titleMaxLines = titleMaxLines,
         titleMaxLines = titleMaxLines,
         coverShadow = coverShadow,
         coverShadow = coverShadow,
+        coverWidth = BookshelfConfig.bookshelfListCoverWidth,
         modifier = modifier,
         modifier = modifier,
         onClick = onClick,
         onClick = onClick,
         onLongClick = onLongClick
         onLongClick = onLongClick
@@ -754,6 +757,7 @@ fun BookItem(
         titleCenter = titleCenter,
         titleCenter = titleCenter,
         titleMaxLines = titleMaxLines,
         titleMaxLines = titleMaxLines,
         coverShadow = coverShadow,
         coverShadow = coverShadow,
+        coverWidth = if (layoutMode == 0) BookshelfConfig.bookshelfListCoverWidth else 84,
         onClick = onClick,
         onClick = onClick,
         onLongClick = onLongClick
         onLongClick = onLongClick
     )
     )

+ 22 - 8
app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigSheet.kt

@@ -152,6 +152,14 @@ fun BookshelfConfigSheet(
                                 else BookshelfConfig.bookshelfFolderLayoutListPortrait = it.toInt()
                                 else BookshelfConfig.bookshelfFolderLayoutListPortrait = it.toInt()
                             }
                             }
                         )
                         )
+
+                        CompactSliderSettingItem(
+                            title = "列表封面宽度",
+                            value = BookshelfConfig.bookshelfListCoverWidth.toFloat(),
+                            valueRange = 40f..120f,
+                            steps = 80,
+                            onValueChange = { BookshelfConfig.bookshelfListCoverWidth = it.toInt() }
+                        )
                     }
                     }
 
 
                     AnimatedVisibility(
                     AnimatedVisibility(
@@ -301,14 +309,20 @@ fun BookshelfConfigSheet(
                         }
                         }
                     )
                     )
 
 
-                    if (BookshelfConfig.bookGroupStyle != 2) {
-                        CompactSwitchSettingItem(
-                            title = stringResource(R.string.compact_mode),
-                            checked = BookshelfConfig.bookshelfLayoutCompact,
-                            color = LegadoTheme.colorScheme.surface,
-                            onCheckedChange = { BookshelfConfig.bookshelfLayoutCompact = it }
-                        )
-                    }
+                    CompactSliderSettingItem(
+                        title = "列表封面宽度",
+                        value = BookshelfConfig.bookshelfListCoverWidth.toFloat(),
+                        valueRange = 40f..120f,
+                        steps = 80,
+                        onValueChange = { BookshelfConfig.bookshelfListCoverWidth = it.toInt() }
+                    )
+
+                    CompactSwitchSettingItem(
+                        title = "精简详情",
+                        checked = BookshelfConfig.bookshelfLayoutCompact,
+                        color = LegadoTheme.colorScheme.surface,
+                        onCheckedChange = { BookshelfConfig.bookshelfLayoutCompact = it }
+                    )
 
 
                     val listColCount =
                     val listColCount =
                         if (isLandscape) BookshelfConfig.bookshelfLayoutListLandscape else BookshelfConfig.bookshelfLayoutListPortrait
                         if (isLandscape) BookshelfConfig.bookshelfLayoutListLandscape else BookshelfConfig.bookshelfLayoutListPortrait