From 8f37c5ba258565b76b2f607ec6fe08db6fce3192 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 16 Nov 2023 01:59:32 +0800 Subject: [PATCH] Fix favButton text not updating in gallery detail --- .../hippo/ehviewer/ui/scene/GalleryDetailScene.kt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index eb9f7f6f3..715c19c6c 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -529,7 +529,7 @@ fun GalleryDetailScreen(args: GalleryDetailScreenArgs, navigator: NavController) ) { maxLines = 5 ellipsize = END - text = item.comment.orEmpty().parseAsHtml(imageGetter = CoilImageGetter(this)) + text = item.comment.parseAsHtml(imageGetter = CoilImageGetter(this)) } } Box( @@ -584,10 +584,8 @@ fun GalleryDetailScreen(args: GalleryDetailScreenArgs, navigator: NavController) modifier = Modifier.fillMaxWidth().horizontalScroll(rememberScrollState()), horizontalArrangement = Arrangement.spacedBy(12.dp, Alignment.CenterHorizontally), ) { - val favored by FavouriteStatusRouter.collectAsState(galleryDetail) { - it != NOT_FAVORITED - } - val favButtonText = if (favored) { + val favSlot by FavouriteStatusRouter.collectAsState(galleryDetail) { it } + val favButtonText = if (favSlot != NOT_FAVORITED) { galleryDetail.favoriteName ?: stringResource(id = R.string.local_favorites) } else { stringResource(id = R.string.not_favorited) @@ -595,7 +593,7 @@ fun GalleryDetailScreen(args: GalleryDetailScreenArgs, navigator: NavController) val favoritesLock = remember { Mutex() } Column(horizontalAlignment = Alignment.CenterHorizontally) { FilledTertiaryIconToggleButton( - checked = favored, + checked = favSlot != NOT_FAVORITED, onCheckedChange = { coroutineScope.launchIO { favoritesLock.withLock { @@ -621,7 +619,7 @@ fun GalleryDetailScreen(args: GalleryDetailScreenArgs, navigator: NavController) }, ) { Icon( - imageVector = getFavoriteIcon(favored), + imageVector = getFavoriteIcon(favSlot != NOT_FAVORITED), contentDescription = null, ) }