diff --git a/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCover.kt b/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCover.kt index 433dea4bc..9cf84a269 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCover.kt +++ b/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 + ) } } } diff --git a/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCoverWithProgress.kt b/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCoverWithProgress.kt index 2a4c65a4b..50ce7adcb 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/cover/BookCoverWithProgress.kt +++ b/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 )