diff --git a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt index 3fe32cef7..fbdcd2ddf 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt @@ -248,10 +248,9 @@ object DownloadManager : OnSpiderListener { @Stable @Composable - fun collectDownloadState(gid: Long): State { - val flow = remember { stateFlow(gid).map { getDownloadState(it) } } - return flow.collectAsState(getDownloadState(gid)) - } + fun collectDownloadState(gid: Long): State = remember { + notifyFlow.transform { if (it.gid == gid) emit(getDownloadState(gid)) } + }.collectAsState(getDownloadState(gid)) @Stable @Composable