mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 23:47:02 +05:30
database: convert to multiplatform
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
bc9ad69260
commit
d86d12f2db
11 changed files with 103 additions and 26 deletions
|
@ -44,7 +44,6 @@ dependencies {
|
|||
implementation(Dependencies.ThirdParty.accompanistFlow)
|
||||
implementation(Dependencies.ThirdParty.Moshi.lib)
|
||||
implementation(Dependencies.ThirdParty.Retrofit.moshi)
|
||||
implementation(Dependencies.ThirdParty.SQLDelight.androidDriver)
|
||||
testImplementation(kotlin("test-junit"))
|
||||
androidTestImplementation(kotlin("test-junit"))
|
||||
}
|
||||
|
|
|
@ -1,41 +1,29 @@
|
|||
package dev.msfjarvis.lobsters.injection
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.Reusable
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import dev.msfjarvis.lobsters.data.local.SavedPost
|
||||
import dev.msfjarvis.lobsters.data.local.DriverFactory
|
||||
import dev.msfjarvis.lobsters.data.local.createDatabase
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
import dev.msfjarvis.lobsters.model.TagsAdapter
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object DatabaseModule {
|
||||
|
||||
@Provides
|
||||
@Reusable
|
||||
fun providesTagsAdapter(): TagsAdapter {
|
||||
return TagsAdapter()
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesSqlDriver(@ApplicationContext context: Context): SqlDriver {
|
||||
return AndroidSqliteDriver(LobstersDatabase.Schema, context, "SavedPosts.db")
|
||||
fun providesDriverFactory(@ApplicationContext context: Context): DriverFactory {
|
||||
return DriverFactory(context)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesLobstersDatabase(sqlDriver: SqlDriver, tagsAdapter: TagsAdapter): LobstersDatabase {
|
||||
return LobstersDatabase(
|
||||
sqlDriver,
|
||||
SavedPost.Adapter(tagsAdapter),
|
||||
)
|
||||
fun providesLobstersDatabase(driverFactory: DriverFactory): LobstersDatabase {
|
||||
return createDatabase(driverFactory)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue