diff --git a/app/src/main/java/com/hippo/ehviewer/FavouriteStatusRouter.kt b/app/src/main/java/com/hippo/ehviewer/FavouriteStatusRouter.kt index 71c632b9b..60410972c 100644 --- a/app/src/main/java/com/hippo/ehviewer/FavouriteStatusRouter.kt +++ b/app/src/main/java/com/hippo/ehviewer/FavouriteStatusRouter.kt @@ -23,8 +23,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.callbackFlow -import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.shareIn +import kotlinx.coroutines.flow.transform object FavouriteStatusRouter { private val idGenerator = IntIdGenerator(Settings.dataMapNextId) @@ -79,5 +79,5 @@ object FavouriteStatusRouter { } }.shareIn(listenerScope, SharingStarted.Eagerly) - fun stateFlow(gid: Long) = globalFlow.filter { (gid1) -> gid1 == gid } + fun stateFlow(targetGid: Long) = globalFlow.transform { (gid, slot) -> if (targetGid == gid) emit(slot) } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index 7ba3cadcf..b7121bcaf 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -693,9 +693,7 @@ class GalleryDetailScene : BaseScene() { ) { val favored by produceState(initialValue = false) { value = galleryDetail.favoriteSlot != -2 - FavouriteStatusRouter.stateFlow(galleryDetail.gid).collect { (_, slot) -> - value = slot != -2 - } + FavouriteStatusRouter.stateFlow(galleryDetail.gid).collect { value = it != -2 } } FilledTertiaryIconToggleButton( checked = favored,