diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/DownloadWorker.kt b/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/DownloadWorker.kt index 9fe15de56..e29f6de14 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/DownloadWorker.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/DownloadWorker.kt @@ -311,6 +311,10 @@ class DownloadWorker @AssistedInject constructor( DOWNLOAD_ERROR_DELAY } if (countDown <= 0 || retryDelay < 0 || retryDelay > MAX_RETRY_DELAY) { + val pausingHandle = PausingHandle.current() + if (pausingHandle.skipAllErrors()) { + return null + } publishState( currentState.copy( isPaused = true, @@ -321,7 +325,6 @@ class DownloadWorker @AssistedInject constructor( ), ) countDown = MAX_FAILSAFE_ATTEMPTS - val pausingHandle = PausingHandle.current() pausingHandle.pause() try { pausingHandle.awaitResumed() diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/PausingHandle.kt b/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/PausingHandle.kt index e02205230..3eb184121 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/PausingHandle.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/download/ui/worker/PausingHandle.kt @@ -53,7 +53,9 @@ class PausingHandle : AbstractCoroutineContextElement(PausingHandle) { } } - fun skipCurrentError(): Boolean = skipError.compareAndSet(expect = true, update = skipAllErrors) + fun skipAllErrors(): Boolean = skipAllErrors + + fun skipCurrentError(): Boolean = skipError.compareAndSet(expect = true, update = false) companion object : CoroutineContext.Key {