mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 10:37:05 +05:30
database: migrate to Android-only
This commit is contained in:
parent
000b782b86
commit
e7f4c8a7eb
13 changed files with 18 additions and 66 deletions
|
@ -1,38 +1,27 @@
|
|||
@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage")
|
||||
|
||||
plugins {
|
||||
kotlin("multiplatform")
|
||||
kotlin("android")
|
||||
alias(libs.plugins.sqldelight)
|
||||
id("dev.msfjarvis.claw.kotlin-common")
|
||||
id("dev.msfjarvis.claw.android-library")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
android()
|
||||
jvm("desktop")
|
||||
sourceSets["androidMain"].apply { dependencies { implementation(libs.sqldelight.androidDriver) } }
|
||||
sourceSets["commonMain"].apply {
|
||||
dependencies { implementation(libs.sqldelight.primitiveAdapters) }
|
||||
}
|
||||
sourceSets["desktopMain"].apply { dependencies { implementation(libs.sqldelight.jvmDriver) } }
|
||||
sourceSets["desktopTest"].apply {
|
||||
dependencies {
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
implementation(kotlin("test-junit"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "dev.msfjarvis.claw.database"
|
||||
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
|
||||
}
|
||||
android { namespace = "dev.msfjarvis.claw.database" }
|
||||
|
||||
sqldelight {
|
||||
database("LobstersDatabase") {
|
||||
packageName = "dev.msfjarvis.claw.database"
|
||||
sourceFolders = listOf("sqldelight")
|
||||
schemaOutputDirectory = file("src/commonMain/sqldelight/databases")
|
||||
schemaOutputDirectory = file("src/main/sqldelight/databases")
|
||||
verifyMigrations = true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.sqldelight.androidDriver)
|
||||
implementation(libs.sqldelight.primitiveAdapters)
|
||||
testImplementation(libs.sqldelight.jvmDriver)
|
||||
testImplementation(libs.kotlinx.coroutines.core)
|
||||
testImplementation(kotlin("test-junit"))
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
package dev.msfjarvis.claw.database.local
|
||||
|
||||
import android.content.Context
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
||||
import dev.msfjarvis.claw.database.LobstersDatabase
|
||||
|
||||
actual class DriverFactory(private val context: Context) {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
return AndroidSqliteDriver(LobstersDatabase.Schema, context, LobstersDatabaseName)
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
package dev.msfjarvis.claw.database.local
|
||||
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
|
||||
import dev.msfjarvis.claw.database.LobstersDatabase
|
||||
import java.io.File
|
||||
|
||||
actual class DriverFactory {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
val env = System.getenv()
|
||||
val home = env["HOME"]
|
||||
val sqlitePath = "$home${File.pathSeparatorChar}.cache${File.pathSeparatorChar}Claw_database.db"
|
||||
val driver: SqlDriver = JdbcSqliteDriver("jdbc:sqlite:$sqlitePath")
|
||||
LobstersDatabase.Schema.create(driver)
|
||||
return driver
|
||||
}
|
||||
}
|
|
@ -1,17 +1,14 @@
|
|||
package dev.msfjarvis.claw.database.local
|
||||
|
||||
import android.content.Context
|
||||
import app.cash.sqldelight.adapter.primitive.IntColumnAdapter
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
||||
import dev.msfjarvis.claw.database.LobstersDatabase
|
||||
import dev.msfjarvis.claw.database.model.TagsAdapter
|
||||
|
||||
internal const val LobstersDatabaseName = "SavedPosts.db"
|
||||
|
||||
expect class DriverFactory {
|
||||
fun createDriver(): SqlDriver
|
||||
}
|
||||
|
||||
fun createDatabase(driverFactory: DriverFactory): LobstersDatabase {
|
||||
val driver = driverFactory.createDriver()
|
||||
fun createDatabase(context: Context): LobstersDatabase {
|
||||
val driver = AndroidSqliteDriver(LobstersDatabase.Schema, context, LobstersDatabaseName)
|
||||
return LobstersDatabase(driver, SavedPost.Adapter(IntColumnAdapter, TagsAdapter()))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue