Provide CoroutineScope and Dispatchers in common

pull/2064/head
lihenggui 2 years ago
parent 678e98ee3b
commit 6982c57b93

@ -16,6 +16,7 @@
package com.google.samples.apps.nowinandroid.core.di
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import me.tatarka.inject.annotations.Component
@ -29,9 +30,12 @@ import me.tatarka.inject.annotations.Scope
annotation class ApplicationScope
@Component
abstract class CoroutineScopeComponent {
abstract class CoroutineScopeComponent(
@Component val dispatchersComponent: DispatchersComponent
) {
@DefaultDispatcher abstract val defaultDispatcher: CoroutineDispatcher
@Provides
fun providesCoroutineScope(
dispatcher: DefaultDispatcher,
): CoroutineScope = CoroutineScope(SupervisorJob() + dispatcher)
fun providesCoroutineScope(): CoroutineScope =
CoroutineScope(SupervisorJob() + defaultDispatcher)
}

@ -23,7 +23,8 @@ import me.tatarka.inject.annotations.Qualifier
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.TYPE
AnnotationTarget.TYPE,
AnnotationTarget.PROPERTY
)
annotation class IoDispatcher
@ -32,7 +33,8 @@ annotation class IoDispatcher
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.TYPE
AnnotationTarget.TYPE,
AnnotationTarget.PROPERTY
)
annotation class MainDispatcher
@ -41,6 +43,7 @@ annotation class MainDispatcher
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.TYPE
AnnotationTarget.TYPE,
AnnotationTarget.PROPERTY
)
annotation class DefaultDispatcher

Loading…
Cancel
Save