From 6982c57b93c2bd179dc966327c6a9d2552d7a9be Mon Sep 17 00:00:00 2001 From: lihenggui Date: Fri, 28 Jun 2024 11:38:36 -0700 Subject: [PATCH] Provide CoroutineScope and Dispatchers in common --- .../nowinandroid/core/di/CoroutineScopeComponent.kt | 12 ++++++++---- .../apps/nowinandroid/core/di/DispatcherQualifier.kt | 9 ++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/CoroutineScopeComponent.kt b/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/CoroutineScopeComponent.kt index abe513134..89b373db0 100644 --- a/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/CoroutineScopeComponent.kt +++ b/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/CoroutineScopeComponent.kt @@ -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) } diff --git a/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatcherQualifier.kt b/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatcherQualifier.kt index 3193db2c9..d51c0277a 100644 --- a/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatcherQualifier.kt +++ b/core/common/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatcherQualifier.kt @@ -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