横排封面时可直接打开书籍
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.compose.animation.ExperimentalSharedTransitionApi
|
|||||||
import androidx.compose.animation.SharedTransitionScope
|
import androidx.compose.animation.SharedTransitionScope
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.combinedClickable
|
import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
@@ -421,7 +422,8 @@ fun BookGroupItemList(
|
|||||||
titleCenter: Boolean = true,
|
titleCenter: Boolean = true,
|
||||||
titleMaxLines: Int = 2,
|
titleMaxLines: Int = 2,
|
||||||
coverShadow: Boolean = false,
|
coverShadow: Boolean = false,
|
||||||
onLongClick: (() -> Unit)? = null
|
onLongClick: (() -> Unit)? = null,
|
||||||
|
onBookClick: ((BookShelfItem) -> Unit)? = null
|
||||||
) {
|
) {
|
||||||
if (BookshelfConfig.bookshelfGroupListStyle == 2) {
|
if (BookshelfConfig.bookshelfGroupListStyle == 2) {
|
||||||
BookGroupItemHorizontalCovers(
|
BookGroupItemHorizontalCovers(
|
||||||
@@ -430,7 +432,8 @@ fun BookGroupItemList(
|
|||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
countText = countText,
|
countText = countText,
|
||||||
onLongClick = onLongClick
|
onLongClick = onLongClick,
|
||||||
|
onBookClick = onBookClick
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -472,7 +475,8 @@ fun BookGroupItemHorizontalCovers(
|
|||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
countText: String? = null,
|
countText: String? = null,
|
||||||
onLongClick: (() -> Unit)? = null
|
onLongClick: (() -> Unit)? = null,
|
||||||
|
onBookClick: ((BookShelfItem) -> Unit)? = null
|
||||||
) {
|
) {
|
||||||
Column {
|
Column {
|
||||||
NormalCard(
|
NormalCard(
|
||||||
@@ -534,6 +538,7 @@ fun BookGroupItemHorizontalCovers(
|
|||||||
.weight(1f)
|
.weight(1f)
|
||||||
.aspectRatio(5f / 7f)
|
.aspectRatio(5f / 7f)
|
||||||
.clip(RoundedCornerShape(4.dp))
|
.clip(RoundedCornerShape(4.dp))
|
||||||
|
.clickable { onBookClick?.invoke(book) }
|
||||||
) {
|
) {
|
||||||
CoilBookCover(
|
CoilBookCover(
|
||||||
name = book.name,
|
name = book.name,
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ import io.legado.app.R
|
|||||||
import io.legado.app.base.BaseRuleEvent
|
import io.legado.app.base.BaseRuleEvent
|
||||||
import io.legado.app.ui.about.AppLogSheet
|
import io.legado.app.ui.about.AppLogSheet
|
||||||
import io.legado.app.data.entities.BookGroup
|
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.book.info.GroupSelectSheet
|
||||||
import io.legado.app.ui.config.bookshelfConfig.BookshelfConfig
|
import io.legado.app.ui.config.bookshelfConfig.BookshelfConfig
|
||||||
import io.legado.app.ui.main.bookCoverSharedElementKey
|
import io.legado.app.ui.main.bookCoverSharedElementKey
|
||||||
@@ -743,8 +744,9 @@ fun BookshelfScreen(
|
|||||||
viewModel.setInFolderRoot(false)
|
viewModel.setInFolderRoot(false)
|
||||||
},
|
},
|
||||||
onLongClick = {
|
onLongClick = {
|
||||||
viewModel.showOverlay(BookshelfOverlay.GroupManageSheet)
|
viewModel.showOverlay(BookshelfOverlay.GroupEditSheet(group.groupId))
|
||||||
}
|
},
|
||||||
|
onBookClick = onBookClick
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
BookGroupItemGrid(
|
BookGroupItemGrid(
|
||||||
@@ -762,7 +764,7 @@ fun BookshelfScreen(
|
|||||||
viewModel.setInFolderRoot(false)
|
viewModel.setInFolderRoot(false)
|
||||||
},
|
},
|
||||||
onLongClick = {
|
onLongClick = {
|
||||||
viewModel.showOverlay(BookshelfOverlay.GroupManageSheet)
|
viewModel.showOverlay(BookshelfOverlay.GroupEditSheet(group.groupId))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1039,6 +1041,17 @@ private fun BookshelfOverlays(
|
|||||||
|
|
||||||
val groups by viewModel.allGroupsFlow.collectAsStateWithLifecycle()
|
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(
|
GroupSelectSheet(
|
||||||
show = activeOverlay == BookshelfOverlay.GroupSelectSheet,
|
show = activeOverlay == BookshelfOverlay.GroupSelectSheet,
|
||||||
groups = groups.filter { it.groupId > 0 },
|
groups = groups.filter { it.groupId > 0 },
|
||||||
|
|||||||
Reference in New Issue
Block a user