feat(database): use Requery's repackaged SQLite for databases

This commit is contained in:
Harsh Shandilya 2023-05-31 06:03:14 +05:30
parent 558062a915
commit 3347224018
No known key found for this signature in database
5 changed files with 18 additions and 4 deletions

View file

@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Directly use Material Icons from upstream artifacts * Directly use Material Icons from upstream artifacts
* Upgrade dependencies * Upgrade dependencies
* Add adaptive navigation support (thanks @Yash-Garg) * Add adaptive navigation support (thanks @Yash-Garg)
* Use latest SQLite for backing databases
## [1.26.0] - 2023-05-03 ## [1.26.0] - 2023-05-03

View file

@ -32,6 +32,7 @@ dependencies {
implementation(libs.dagger) implementation(libs.dagger)
implementation(libs.sqldelight.androidDriver) implementation(libs.sqldelight.androidDriver)
implementation(libs.sqldelight.primitiveAdapters) implementation(libs.sqldelight.primitiveAdapters)
implementation(libs.sqlite.android)
testImplementation(libs.sqldelight.jvmDriver) testImplementation(libs.sqldelight.jvmDriver)
addTestDependencies(project) addTestDependencies(project)

View file

@ -18,6 +18,7 @@ import dev.msfjarvis.claw.database.LobstersDatabase
import dev.msfjarvis.claw.database.local.PostComments import dev.msfjarvis.claw.database.local.PostComments
import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.database.local.SavedPost
import dev.msfjarvis.claw.database.model.CSVAdapter import dev.msfjarvis.claw.database.model.CSVAdapter
import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory
@Module @Module
@ContributesTo(ApplicationScope::class) @ContributesTo(ApplicationScope::class)
@ -27,11 +28,17 @@ object DatabaseModule {
@Provides @Provides
fun provideDatabase(@ForScope(ApplicationScope::class) context: Context): LobstersDatabase { fun provideDatabase(@ForScope(ApplicationScope::class) context: Context): LobstersDatabase {
val driver = AndroidSqliteDriver(LobstersDatabase.Schema, context, LOBSTERS_DATABASE_NAME) val driver =
AndroidSqliteDriver(
schema = LobstersDatabase.Schema,
context = context,
name = LOBSTERS_DATABASE_NAME,
factory = RequerySQLiteOpenHelperFactory(),
)
return LobstersDatabase( return LobstersDatabase(
driver, driver = driver,
PostComments.Adapter(CSVAdapter()), PostCommentsAdapter = PostComments.Adapter(CSVAdapter()),
SavedPost.Adapter(IntColumnAdapter, CSVAdapter()), SavedPostAdapter = SavedPost.Adapter(IntColumnAdapter, CSVAdapter()),
) )
} }
} }

View file

@ -89,6 +89,7 @@ sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", vers
sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" }
sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" } sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" }
sqldelight-primitiveAdapters = { module = "app.cash.sqldelight:primitive-adapters", version.ref = "sqldelight" } sqldelight-primitiveAdapters = { module = "app.cash.sqldelight:primitive-adapters", version.ref = "sqldelight" }
sqlite-android = "com.github.requery:sqlite-android:3.42.0"
testparameterinjector = "com.google.testparameterinjector:test-parameter-injector:1.12" testparameterinjector = "com.google.testparameterinjector:test-parameter-injector:1.12"
truth = "com.google.truth:truth:1.1.4" truth = "com.google.truth:truth:1.1.4"
whetstone = { module = "com.deliveryhero.whetstone:whetstone", version.ref = "whetstone" } whetstone = { module = "com.deliveryhero.whetstone:whetstone", version.ref = "whetstone" }

View file

@ -131,6 +131,10 @@ dependencyResolutionManagement {
forRepository { maven("https://oss.sonatype.org/content/repositories/snapshots/") } forRepository { maven("https://oss.sonatype.org/content/repositories/snapshots/") }
filter { includeGroup("dev.msfjarvis.whetstone") } filter { includeGroup("dev.msfjarvis.whetstone") }
} }
exclusiveContent {
forRepository { maven("https://jitpack.io") }
filter { includeGroup("com.github.requery") }
}
mavenCentral() mavenCentral()
} }
} }