diff --git a/app/src/main/java/io/legado/app/help/coroutine/Coroutine.kt b/app/src/main/java/io/legado/app/help/coroutine/Coroutine.kt index f2bb9ed08..130910166 100644 --- a/app/src/main/java/io/legado/app/help/coroutine/Coroutine.kt +++ b/app/src/main/java/io/legado/app/help/coroutine/Coroutine.kt @@ -200,11 +200,9 @@ class Coroutine( private suspend inline fun dispatchVoidCallback(scope: CoroutineScope, callback: VoidCallback) { if (null == callback.context) { - withContext(scope.coroutineContext) { - callback.block.invoke(scope) - } + callback.block.invoke(scope) } else { - withContext(scope.coroutineContext + callback.context) { + withContext(callback.context) { callback.block.invoke(this) } } @@ -219,7 +217,7 @@ class Coroutine( if (null == callback.context) { callback.block.invoke(scope, value) } else { - withContext(scope.coroutineContext + callback.context) { + withContext(callback.context) { callback.block.invoke(this, value) } } @@ -231,7 +229,7 @@ class Coroutine( timeMillis: Long, noinline block: suspend CoroutineScope.() -> T ): T { - return withContext(scope.coroutineContext + context) { + return withContext(context) { if (timeMillis > 0L) withTimeout(timeMillis) { block() } else { @@ -242,12 +240,12 @@ class Coroutine( private data class Result(val value: T?) - private inner class VoidCallback( + private class VoidCallback( val context: CoroutineContext?, val block: suspend CoroutineScope.() -> Unit ) - private inner class Callback( + private class Callback( val context: CoroutineContext?, val block: suspend CoroutineScope.(VALUE) -> Unit )