database: migrate to Android-only

This commit is contained in:
Harsh Shandilya 2022-08-02 22:08:17 +05:30
parent 000b782b86
commit e7f4c8a7eb
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
13 changed files with 18 additions and 66 deletions

View file

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

View file

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

View file

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