From 40a9f097868f3d4aa35085101f46636d84f1d95e Mon Sep 17 00:00:00 2001 From: lihenggui Date: Wed, 21 Feb 2024 20:03:48 -0800 Subject: [PATCH] Use @Component in the database module --- core/database/build.gradle.kts | 1 + .../core/database/DriverModule.kt | 5 +++-- .../core/database/DatabaseModule.kt | 20 +++++++++++++------ .../core/database/DriverModule.kt | 2 +- .../core/database/DriverModule.kt | 4 +++- .../core/database/DriverModule.kt | 4 +++- .../core/database/DriverModule.kt | 4 +++- 7 files changed, 28 insertions(+), 12 deletions(-) diff --git a/core/database/build.gradle.kts b/core/database/build.gradle.kts index 9dad3e0cd..ac81f18d7 100644 --- a/core/database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -32,6 +32,7 @@ kotlin { sourceSets { commonMain.dependencies { api(projects.core.model) + implementation(projects.core.common) implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.coroutines.core) implementation(libs.sqldelight.coroutines.extensions) diff --git a/core/database/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt index 0a6a5c34b..e5eb5090b 100644 --- a/core/database/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt +++ b/core/database/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt @@ -23,11 +23,12 @@ import app.cash.sqldelight.db.QueryResult import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlSchema import app.cash.sqldelight.driver.android.AndroidSqliteDriver +import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Inject import me.tatarka.inject.annotations.Provides -@Inject -actual class DriverModule(private val context: Context) { +@Component +internal actual abstract class DriverModule(private val context: Context) { @Provides actual suspend fun provideDbDriver( diff --git a/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt b/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt index d5bddadc4..7fec4df6f 100644 --- a/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt +++ b/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt @@ -22,35 +22,43 @@ import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceFtsDao import com.google.samples.apps.nowinandroid.core.database.dao.RecentSearchQueryDao import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao import com.google.samples.apps.nowinandroid.core.database.dao.TopicFtsDao +import com.google.samples.apps.nowinandroid.core.di.IODispatcher import kotlinx.coroutines.Dispatchers +import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides -internal object DatabaseModule { +@Component +internal abstract class DatabaseModule { @Provides fun providesNiaDatabase(driver: SqlDriver): NiaDatabase = NiaDatabase(driver) @Provides fun providesTopicsDao( database: NiaDatabase, - ): TopicDao = TopicDao(database, Dispatchers.Default) + dispatcher: IODispatcher, + ): TopicDao = TopicDao(database, dispatcher) @Provides fun providesNewsResourceDao( database: NiaDatabase, - ): NewsResourceDao = NewsResourceDao(database, Dispatchers.Default) + dispatcher: IODispatcher, + ): NewsResourceDao = NewsResourceDao(database, dispatcher) @Provides fun providesTopicFtsDao( database: NiaDatabase, - ): TopicFtsDao = TopicFtsDao(database, Dispatchers.Default) + dispatcher: IODispatcher, + ): TopicFtsDao = TopicFtsDao(database, dispatcher) @Provides fun providesNewsResourceFtsDao( database: NiaDatabase, - ): NewsResourceFtsDao = NewsResourceFtsDao(database, Dispatchers.Default) + dispatcher: IODispatcher, + ): NewsResourceFtsDao = NewsResourceFtsDao(database, dispatcher) @Provides fun providesRecentSearchQueryDao( database: NiaDatabase, - ): RecentSearchQueryDao = RecentSearchQueryDao(database, Dispatchers.Default) + dispatcher: IODispatcher, + ): RecentSearchQueryDao = RecentSearchQueryDao(database, dispatcher) } diff --git a/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt index aaeaf9b15..4d79ddaf1 100644 --- a/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt +++ b/core/database/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt @@ -21,7 +21,7 @@ import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlSchema import me.tatarka.inject.annotations.Provides -expect class DriverModule { +internal expect abstract class DriverModule { @Provides suspend fun provideDbDriver( schema: SqlSchema>, diff --git a/core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt index 4a34bc105..5f1a9c977 100644 --- a/core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt +++ b/core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt @@ -20,10 +20,12 @@ import app.cash.sqldelight.db.QueryResult import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlSchema import app.cash.sqldelight.driver.worker.WebWorkerDriver +import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides import org.w3c.dom.Worker -actual class DriverModule { +@Component +internal actual abstract class DriverModule { @Provides actual suspend fun provideDbDriver( schema: SqlSchema>, diff --git a/core/database/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt index d69966a12..220e575d5 100644 --- a/core/database/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt +++ b/core/database/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt @@ -20,10 +20,12 @@ import app.cash.sqldelight.db.QueryResult import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlSchema import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver +import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides import java.util.Properties -actual class DriverModule { +@Component +internal actual abstract class DriverModule { @Provides actual suspend fun provideDbDriver( schema: SqlSchema>, diff --git a/core/database/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt index 311c0e470..3c4fce8ba 100644 --- a/core/database/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt +++ b/core/database/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt @@ -22,9 +22,11 @@ import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlSchema import app.cash.sqldelight.driver.native.NativeSqliteDriver import co.touchlab.sqliter.DatabaseConfiguration +import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides -actual class DriverModule { +@Component +internal actual abstract class DriverModule { @Provides actual suspend fun provideDbDriver(