From c1ac20780949f7bb2016ffbc3800eae18fd6e3e0 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 4 Sep 2024 14:33:08 +0300 Subject: [PATCH] Fix downloading (close #1072) --- .../main/kotlin/org/koitharu/kotatsu/core/util/ext/Flow.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Flow.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Flow.kt index 4e3d38a55..5cb93035d 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Flow.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Flow.kt @@ -5,7 +5,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.channelFlow -import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.firstOrNull @@ -15,6 +15,7 @@ import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.transform import kotlinx.coroutines.flow.transformLatest +import kotlinx.coroutines.flow.transformWhile import org.koitharu.kotatsu.R import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger @@ -101,7 +102,8 @@ fun Flow.withTicker(interval: Long, timeUnit: TimeUnit) = channelFlow onCompletion { cause -> close(cause) }.combine(tickerFlow(interval, timeUnit)) { x, _ -> x } - .collectLatest { send(it) } + .transformWhile { trySend(it).isSuccess } + .collect() } @Suppress("UNCHECKED_CAST")