Fix favButton text not updating in gallery detail

This commit is contained in:
FooIbar authored and Vladimir Dostoyevskiy committed 2023-11-16 09:33:24 +08:00
1 parent b63b36e6d2
commit 8f37c5ba25
1 file changed
+5 -7
@@ -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,
)
}