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) {