Просмотр исходного кода

[修复] 修复分组添加和编辑、拖动的功能
[修复] 修复关闭分组时直接消失的问题
[修复] 修复发现错误的字符串
[修复] 修复部分设置无法及时触发的问题
[修复] 修复下拉刷新时刷新全部书籍的问题
[修复] 修复不显示未读数量的问题

HapeLee 7 месяцев назад
Родитель
Сommit
34565bc8e0

+ 14 - 17
app/src/main/java/io/legado/app/ui/widget/components/cover/BookCover.kt

@@ -10,17 +10,15 @@ import androidx.compose.foundation.Canvas
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.isSystemInDarkTheme
-import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.RowScope
 import androidx.compose.foundation.layout.aspectRatio
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Update
 import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
@@ -43,6 +41,7 @@ import coil.request.ImageRequest
 import io.legado.app.help.config.AppConfig
 import io.legado.app.model.BookCover
 import io.legado.app.ui.config.coverConfig.CoverConfig
+import io.legado.app.ui.widget.components.card.TextCard
 import org.koin.compose.koinInject
 
 @Composable
@@ -51,7 +50,8 @@ fun BookCover(
     author: String?,
     path: String?,
     modifier: Modifier = Modifier.width(64.dp),
-    badgeContent: (@Composable RowScope.() -> Unit)? = null,
+    badgeText: String? = null,
+    showBadgeDot: Boolean = false,
     sourceOrigin: String? = null,
     onLoadFinish: (() -> Unit)? = null
 ) {
@@ -125,22 +125,19 @@ fun BookCover(
         }
 
         // 3. 角标 (Badge)
-        if (badgeContent != null) {
-            Surface(
+        if (!badgeText.isNullOrEmpty()) {
+            TextCard(
+                text = badgeText,
+                icon = if (showBadgeDot) Icons.Default.Update else null,
                 modifier = Modifier
                     .align(Alignment.TopEnd)
                     .padding(2.dp),
-                shape = RoundedCornerShape(2.dp),
-                color = MaterialTheme.colorScheme.secondaryContainer.copy(alpha = 0.9f),
+                backgroundColor = MaterialTheme.colorScheme.secondaryContainer,
                 contentColor = MaterialTheme.colorScheme.onSecondaryContainer,
-            ) {
-                Row(
-                    modifier = Modifier.padding(horizontal = 4.dp, vertical = 1.dp),
-                    verticalAlignment = Alignment.CenterVertically,
-                    horizontalArrangement = Arrangement.Center,
-                    content = badgeContent
-                )
-            }
+                cornerRadius = 4.dp,
+                horizontalPadding = 4.dp,
+                verticalPadding = 0.dp
+            )
         }
     }
 }

+ 4 - 3
app/src/main/java/io/legado/app/ui/widget/components/cover/BookCoverWithProgress.kt

@@ -1,7 +1,6 @@
 package io.legado.app.ui.widget.components.cover
 
 import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.RowScope
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
@@ -20,7 +19,8 @@ fun BookCoverWithProgress(
     path: String?,
     modifier: Modifier = Modifier,
     isUpdating: Boolean = false,
-    badgeContent: (@Composable RowScope.() -> Unit)? = null,
+    badgeText: String? = null,
+    showBadgeDot: Boolean = false,
     sourceOrigin: String? = null,
     onLoadFinish: (() -> Unit)? = null
 ) {
@@ -30,7 +30,8 @@ fun BookCoverWithProgress(
             author = author,
             path = path,
             modifier = Modifier.fillMaxWidth(),
-            badgeContent = badgeContent,
+            badgeText = badgeText,
+            showBadgeDot = showBadgeDot,
             sourceOrigin = sourceOrigin,
             onLoadFinish = onLoadFinish
         )