Prechádzať zdrojové kódy

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

HapeLee 5 mesiacov pred
rodič
commit
f5971024e7

+ 8 - 3
app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt

@@ -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,

+ 16 - 3
app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfScreen.kt

@@ -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 },