From de93f32b96cefca12a28830a00a236b3d703df54 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 27 Sep 2021 19:24:55 +0530 Subject: [PATCH] android: add Hilt module for database --- .../claw/android/injection/DatabaseModule.kt | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DatabaseModule.kt diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DatabaseModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DatabaseModule.kt new file mode 100644 index 00000000..bdc79f12 --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DatabaseModule.kt @@ -0,0 +1,36 @@ +package dev.msfjarvis.claw.android.injection + +import android.content.Context +import com.squareup.sqldelight.db.SqlDriver +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import dev.msfjarvis.claw.database.LobstersDatabase +import dev.msfjarvis.claw.database.local.DriverFactory +import dev.msfjarvis.claw.database.local.SavedPost +import dev.msfjarvis.claw.database.model.TagsAdapter + +@Module +@InstallIn(SingletonComponent::class) +object DatabaseModule { + + @Provides + fun provideDriverFactory(@ApplicationContext context: Context): SqlDriver { + return DriverFactory(context).createDriver() + } + + @Provides + fun provideSavedPostsAdapter(): SavedPost.Adapter { + return SavedPost.Adapter(TagsAdapter()) + } + + @Provides + fun provideDatabase( + driver: SqlDriver, + adapter: SavedPost.Adapter, + ): LobstersDatabase { + return LobstersDatabase(driver, adapter) + } +}