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

This commit is contained in:
HapeLee
2026-05-17 21:37:18 +08:00
parent 59c13c7c42
commit f65ada7cb9
6 changed files with 41 additions and 12 deletions
@@ -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"
@@ -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 {
@@ -288,12 +288,19 @@ object BookshelfConfig {
val bookshelfGroupListStyleState: State<Int> get() = _bookshelfGroupListStyle.state
/**
* 文件夹在列表模式下横排封面的数量
* 书架文件夹在列表模式下横排封面的数量
*/
private val _bookshelfGroupCoverCount = prefStateDelegate(PreferKey.bookshelfGroupCoverCount, 4)
var bookshelfGroupCoverCount by _bookshelfGroupCoverCount
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
/**
* 书架搜索按钮是否直接跳转搜索页
*/
@@ -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
)
@@ -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