From f65ada7cb95bc58d74a6da5db906659be76a6ca7 Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Sun, 17 May 2026 21:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=A6=BB=E7=B4=A7=E5=87=91=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E7=8E=B0=E5=9C=A8=E5=8F=AF=E5=88=86=E5=88=AB?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=B0=81=E9=9D=A2=E5=A4=A7=E5=B0=8F=E5=92=8C?= =?UTF-8?q?=E7=B2=BE=E7=AE=80=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.local.json | 5 +++- .../java/io/legado/app/constant/PreferKey.kt | 1 + .../source/edit/BookSourceEditActivity.kt | 2 +- .../config/bookshelfConfig/BookshelfConfig.kt | 9 +++++- .../legado/app/ui/main/bookshelf/BookItem.kt | 6 +++- .../ui/main/bookshelf/BookshelfConfigSheet.kt | 30 ++++++++++++++----- 6 files changed, 41 insertions(+), 12 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 30a8e1c5d..279d0ab39 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -98,7 +98,10 @@ "Bash(findstr /i \"material3.*sources\")", "WebFetch(domain:android.googlesource.com)", "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\\\\\", \"\"\\) })" ] } } diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index 86ce8abfb..050a0fb05 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -272,6 +272,7 @@ object PreferKey { const val bookshelfCardColorDark = "bookshelfCardColorDark" const val bookshelfGroupListStyle = "bookshelfGroupListStyle" const val bookshelfGroupCoverCount = "bookshelfGroupCoverCount" + const val bookshelfListCoverWidth = "bookshelfListCoverWidth" const val exploreLayoutGridLandscape = "exploreLayoutGridLandscape" diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 1844242da..c24dd2eef 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/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("payAction", cr.payAction, R.string.rule_pay_action)) } - // 段评 + // val rr = bs.getReviewRule() // reviewEntities.clear() // reviewEntities.apply { diff --git a/app/src/main/java/io/legado/app/ui/config/bookshelfConfig/BookshelfConfig.kt b/app/src/main/java/io/legado/app/ui/config/bookshelfConfig/BookshelfConfig.kt index 760baa44f..638796d50 100644 --- a/app/src/main/java/io/legado/app/ui/config/bookshelfConfig/BookshelfConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/bookshelfConfig/BookshelfConfig.kt @@ -288,12 +288,19 @@ object BookshelfConfig { val bookshelfGroupListStyleState: State get() = _bookshelfGroupListStyle.state /** - * 文件夹在列表模式下横排封面的数量 + * 书架文件夹在列表模式下横排封面的数量 */ private val _bookshelfGroupCoverCount = prefStateDelegate(PreferKey.bookshelfGroupCoverCount, 4) var bookshelfGroupCoverCount by _bookshelfGroupCoverCount val bookshelfGroupCoverCountState: State get() = _bookshelfGroupCoverCount.state + /** + * 书架列表模式下封面宽度 + */ + private val _bookshelfListCoverWidth = prefStateDelegate(PreferKey.bookshelfListCoverWidth, 84) + var bookshelfListCoverWidth by _bookshelfListCoverWidth + val bookshelfListCoverWidthState: State get() = _bookshelfListCoverWidth.state + /** * 书架搜索按钮是否直接跳转搜索页 */ diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt index 7a8220d40..78a69bc1f 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt @@ -83,6 +83,7 @@ fun BookshelfItem( coverShadow: Boolean = false, titleColor: Color? = null, descAnnotated: AnnotatedString? = null, + coverWidth: Int = 84, onClick: () -> Unit, onLongClick: (() -> Unit)? ) { @@ -193,7 +194,7 @@ fun BookshelfItem( Box( modifier = Modifier .align(Alignment.Top) - .width(if (!isCompact) 84.dp else 56.dp) + .width(coverWidth.dp) ) { Box( modifier = Modifier @@ -433,6 +434,7 @@ fun BookGroupItemGrid( titleCenter = titleCenter, titleMaxLines = titleMaxLines, coverShadow = coverShadow, + coverWidth = 84, onClick = onClick, onLongClick = onLongClick ) @@ -488,6 +490,7 @@ fun BookGroupItemList( titleCenter = titleCenter, titleMaxLines = titleMaxLines, coverShadow = coverShadow, + coverWidth = BookshelfConfig.bookshelfListCoverWidth, modifier = modifier, onClick = onClick, onLongClick = onLongClick @@ -754,6 +757,7 @@ fun BookItem( titleCenter = titleCenter, titleMaxLines = titleMaxLines, coverShadow = coverShadow, + coverWidth = if (layoutMode == 0) BookshelfConfig.bookshelfListCoverWidth else 84, onClick = onClick, onLongClick = onLongClick ) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigSheet.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigSheet.kt index 4091aa5e8..217c91220 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigSheet.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigSheet.kt @@ -152,6 +152,14 @@ fun BookshelfConfigSheet( else BookshelfConfig.bookshelfFolderLayoutListPortrait = it.toInt() } ) + + CompactSliderSettingItem( + title = "列表封面宽度", + value = BookshelfConfig.bookshelfListCoverWidth.toFloat(), + valueRange = 40f..120f, + steps = 80, + onValueChange = { BookshelfConfig.bookshelfListCoverWidth = it.toInt() } + ) } 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 = if (isLandscape) BookshelfConfig.bookshelfLayoutListLandscape else BookshelfConfig.bookshelfLayoutListPortrait