android: add Hilt module for database

This commit is contained in:
Harsh Shandilya 2021-09-27 19:24:55 +05:30
parent 6037f41d03
commit de93f32b96
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -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)
}
}