diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt index eb0ccf88e..2922230db 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt @@ -153,6 +153,8 @@ object EhUtils { val categoryTextColor = Color(0xffe6e0e9) + val favoriteIconColor = Color(0xffff3040) + fun signOut() { EhCookieStore.removeAllCookies() Settings.displayName.value = null diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt index 4dce15774..32ba8cc26 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt @@ -213,6 +213,7 @@ fun GalleryInfoGridItem( modifier: Modifier = Modifier, showLanguage: Boolean = true, showPages: Boolean = true, + showFavoriteStatus: Boolean = true, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, ) = ElevatedCard( modifier = modifier, @@ -258,6 +259,17 @@ fun GalleryInfoGridItem( Text(text = info.simpleLanguage.orEmpty()) } } + if (showFavoriteStatus) { + val isFavorited by FavouriteStatusRouter.collectAsState(info) { it != NOT_FAVORITED } + if (isFavorited) { + Icon( + imageVector = Icons.Default.Favorite, + contentDescription = null, + modifier = Modifier.align(Alignment.BottomEnd).padding(2.dp), + tint = EhUtils.favoriteIconColor, + ) + } + } } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index b92af7937..51dcb16c1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -332,6 +332,7 @@ fun AnimatedVisibilityScope.FavouritesScreen(navigator: DestinationsNavigator) = }, info = info, showPages = showPages, + showFavoriteStatus = false, interactionSource = interactionSource, ) }