横排封面时可直接打开书籍

This commit is contained in:
HapeLee
2026-05-14 00:53:57 +08:00
parent e4487d6c9f
commit f5971024e7
2 changed files with 24 additions and 6 deletions
@@ -5,6 +5,7 @@ import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -421,7 +422,8 @@ fun BookGroupItemList(
titleCenter: Boolean = true,
titleMaxLines: Int = 2,
coverShadow: Boolean = false,
onLongClick: (() -> Unit)? = null
onLongClick: (() -> Unit)? = null,
onBookClick: ((BookShelfItem) -> Unit)? = null
) {
if (BookshelfConfig.bookshelfGroupListStyle == 2) {
BookGroupItemHorizontalCovers(
@@ -430,7 +432,8 @@ fun BookGroupItemList(
onClick = onClick,
modifier = modifier,
countText = countText,
onLongClick = onLongClick
onLongClick = onLongClick,
onBookClick = onBookClick
)
return
}
@@ -472,7 +475,8 @@ fun BookGroupItemHorizontalCovers(
onClick: () -> Unit,
modifier: Modifier = Modifier,
countText: String? = null,
onLongClick: (() -> Unit)? = null
onLongClick: (() -> Unit)? = null,
onBookClick: ((BookShelfItem) -> Unit)? = null
) {
Column {
NormalCard(
@@ -534,6 +538,7 @@ fun BookGroupItemHorizontalCovers(
.weight(1f)
.aspectRatio(5f / 7f)
.clip(RoundedCornerShape(4.dp))
.clickable { onBookClick?.invoke(book) }
) {
CoilBookCover(
name = book.name,
@@ -91,6 +91,7 @@ import io.legado.app.R
import io.legado.app.base.BaseRuleEvent
import io.legado.app.ui.about.AppLogSheet
import io.legado.app.data.entities.BookGroup
import io.legado.app.ui.book.group.GroupEditSheet
import io.legado.app.ui.book.info.GroupSelectSheet
import io.legado.app.ui.config.bookshelfConfig.BookshelfConfig
import io.legado.app.ui.main.bookCoverSharedElementKey
@@ -743,8 +744,9 @@ fun BookshelfScreen(
viewModel.setInFolderRoot(false)
},
onLongClick = {
viewModel.showOverlay(BookshelfOverlay.GroupManageSheet)
}
viewModel.showOverlay(BookshelfOverlay.GroupEditSheet(group.groupId))
},
onBookClick = onBookClick
)
} else {
BookGroupItemGrid(
@@ -762,7 +764,7 @@ fun BookshelfScreen(
viewModel.setInFolderRoot(false)
},
onLongClick = {
viewModel.showOverlay(BookshelfOverlay.GroupManageSheet)
viewModel.showOverlay(BookshelfOverlay.GroupEditSheet(group.groupId))
}
)
}
@@ -1039,6 +1041,17 @@ private fun BookshelfOverlays(
val groups by viewModel.allGroupsFlow.collectAsStateWithLifecycle()
if (activeOverlay is BookshelfOverlay.GroupEditSheet) {
val editGroup = groups.firstOrNull { it.groupId == activeOverlay.groupId }
if (editGroup != null) {
GroupEditSheet(
show = true,
group = editGroup,
onDismissRequest = { viewModel.dismissOverlay() }
)
}
}
GroupSelectSheet(
show = activeOverlay == BookshelfOverlay.GroupSelectSheet,
groups = groups.filter { it.groupId > 0 },