From b8192724c398bdb8818b0192e0acd5478890c5be Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Sat, 20 Jun 2026 20:27:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B9=A6=E6=9E=B6?= =?UTF-8?q?=E5=B0=81=E9=9D=A2=E4=B8=8E=E6=9B=B4=E6=96=B0=E6=A0=87=E5=BF=97?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/help/coil/CoverInterceptor.kt | 6 +++++- .../main/java/io/legado/app/ui/main/bookshelf/BookItem.kt | 6 +++++- .../app/ui/widget/components/image/cover/CoilBookCover.kt | 8 ++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/coil/CoverInterceptor.kt b/app/src/main/java/io/legado/app/help/coil/CoverInterceptor.kt index 82b537355..f424a1bd7 100644 --- a/app/src/main/java/io/legado/app/help/coil/CoverInterceptor.kt +++ b/app/src/main/java/io/legado/app/help/coil/CoverInterceptor.kt @@ -37,7 +37,11 @@ class CoverInterceptor : Interceptor { if (data is String && data.isNotBlank()) { val sourceOrigin = request.parameters.value("sourceOrigin") as? String - val source = sourceOrigin?.let { SourceHelp.getSource(it) } + val source = sourceOrigin?.let { origin -> + withContext(Dispatchers.IO) { + SourceHelp.getSource(origin) + } + } val cacheKey = "$data|$sourceOrigin" val cached = synchronized(resolvedUrlCache) { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt index 3e341ed9a..5ed1dd35d 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt @@ -25,6 +25,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight +import androidx.compose.material.icons.filled.Update import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -627,6 +628,7 @@ fun BookItem( val book = bookUi.book val unreadCount = book.getUnreadChapterNum() val unreadText = if (BookshelfConfig.showUnread && unreadCount > 0) unreadCount.toString() else null + val showUpdateBadge = BookshelfConfig.showUnread && BookshelfConfig.showUnreadNew && book.isNew val bookTypeLabel = if (BookshelfConfig.showTip) { when { book.isAudio -> stringResource(R.string.audio) @@ -658,6 +660,8 @@ fun BookItem( { TextCard( text = unreadText, + icon = if (showUpdateBadge) Icons.Default.Update else null, + iconSize = 12.dp, cornerRadius = 4.dp, horizontalPadding = 4.dp, verticalPadding = 0.dp @@ -676,7 +680,7 @@ fun BookItem( .aspectRatio(5f / 7f), sourceOrigin = book.origin, badgeText = if (layoutMode != 0) unreadText else null, - showBadgeDot = BookshelfConfig.showUnread && BookshelfConfig.showUnreadNew && book.isNew, + showBadgeDot = showUpdateBadge, leftBottomText = matchedSourceLabel ?: bookTypeLabel, showLoadingPlaceholder = true, sharedTransitionScope = sharedTransitionScope, diff --git a/app/src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt b/app/src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt index b3b4f0d86..478a57085 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt @@ -83,9 +83,7 @@ fun BookCoverImage( } val hasCustomDefault = !randomPath.isNullOrBlank() - var isOnlineCoverLoaded by remember(finalPath) { - mutableStateOf(sharedCoverKey != null && finalPath != null) - } + var isOnlineCoverLoaded by remember(finalPath) { mutableStateOf(false) } LaunchedEffect(finalPath) { if (finalPath == null) { @@ -175,9 +173,7 @@ fun CoilBookCover( } val hasCustomDefault = !randomPath.isNullOrBlank() - var isOnlineCoverLoaded by remember(finalPath) { - mutableStateOf(sharedCoverKey != null && finalPath != null) - } + var isOnlineCoverLoaded by remember(finalPath) { mutableStateOf(false) } LaunchedEffect(finalPath) { if (finalPath == null) {