mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-18 03:17:03 +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
2
database/src/androidMain/AndroidManifest.xml
Normal file
2
database/src/androidMain/AndroidManifest.xml
Normal file
|
@ -0,0 +1,2 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="dev.msfjarvis.lobsters.database" />
|
|
@ -0,0 +1,12 @@
|
|||
package dev.msfjarvis.lobsters.data.local
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
|
||||
actual class DriverFactory(private val context: Context) {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
return AndroidSqliteDriver(LobstersDatabase.Schema, context, LobstersDatabaseName)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package dev.msfjarvis.lobsters.data.local
|
||||
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import dev.msfjarvis.lobsters.data.model.TagsAdapter
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
|
||||
internal const val LobstersDatabaseName = "SavedPosts.db"
|
||||
|
||||
expect class DriverFactory {
|
||||
fun createDriver(): SqlDriver
|
||||
}
|
||||
|
||||
private fun getTagsAdapter() = TagsAdapter()
|
||||
|
||||
fun createDatabase(driverFactory: DriverFactory): LobstersDatabase {
|
||||
val driver = driverFactory.createDriver()
|
||||
return LobstersDatabase(driver, SavedPost.Adapter(getTagsAdapter()))
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package dev.msfjarvis.lobsters.model
|
||||
package dev.msfjarvis.lobsters.data.model
|
||||
|
||||
import com.squareup.sqldelight.ColumnAdapter
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package dev.msfjarvis.lobsters.data.local
|
||||
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
|
||||
actual class DriverFactory {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
val driver: SqlDriver = JdbcSqliteDriver(JdbcSqliteDriver.IN_MEMORY)
|
||||
LobstersDatabase.Schema.create(driver)
|
||||
return driver
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
package dev.msfjarvis.lobsters.data.local
|
||||
|
||||
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
|
||||
import dev.msfjarvis.lobsters.data.model.TagsAdapter
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
import dev.msfjarvis.lobsters.model.TagsAdapter
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlinx.coroutines.runBlocking
|
Loading…
Add table
Add a link
Reference in a new issue