diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt index b20dc67ffb..326f0e17e3 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt @@ -23,7 +23,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.sample import kotlinx.coroutines.launch import kotlinx.serialization.Serializable @@ -119,14 +118,12 @@ object DownloadManager { private val notifyFlow = MutableSharedFlow(extraBufferCapacity = 1, onBufferOverflow = BufferOverflow.DROP_OLDEST) - val status = - notifyFlow.sample(1.seconds) - .onStart { emit(Unit) } - .map { getStatus() } + val status = MutableSharedFlow() init { scope.launch { notifyFlow.sample(1.seconds).collect { + status.emit(getStatus()) sendStatusToAllClients() } } @@ -148,6 +145,10 @@ object DownloadManager { private fun notifyAllClients(immediate: Boolean = false) { scope.launch { notifyFlow.emit(Unit) + + if (immediate) { + status.emit(getStatus()) + } } if (immediate) { sendStatusToAllClients()