Skip to content

Commit 233fdaf

Browse files
update room config
1 parent 56fca13 commit 233fdaf

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

library/src/androidMain/kotlin/com/pula/sync/data/AppDatabase.android.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ package com.pula.sync.data
33
import android.content.Context
44
import androidx.room.Room
55
import androidx.room.RoomDatabase
6+
import androidx.sqlite.driver.bundled.BundledSQLiteDriver
7+
import kotlinx.coroutines.Dispatchers
68

79
actual fun getDatabaseBuilder(ctx: Any?): RoomDatabase.Builder<AppDatabase> {
810
val context = ctx as Context
11+
val dbFile = context.getDatabasePath("pula-sync.db")
912
return Room.databaseBuilder<AppDatabase>(
1013
context = context.applicationContext,
11-
name = "pula-sync.db",
12-
factory = { AppDatabaseConstructor.initialize() }
13-
)
14+
name = dbFile.absolutePath,
15+
factory = { AppDatabaseConstructor.initialize() }).setDriver(BundledSQLiteDriver())
16+
.setQueryCoroutineContext(Dispatchers.IO)
1417
}

library/src/iosMain/kotlin/com/pula/sync/data/AppDatabase.ios.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,28 @@ package com.pula.sync.data
33
import androidx.room.Room
44
import androidx.room.RoomDatabase
55
import androidx.sqlite.driver.bundled.BundledSQLiteDriver
6-
import platform.Foundation.NSHomeDirectory
6+
import kotlinx.cinterop.ExperimentalForeignApi
7+
import kotlinx.coroutines.Dispatchers
8+
import kotlinx.coroutines.IO
9+
import platform.Foundation.NSDocumentDirectory
10+
import platform.Foundation.NSFileManager
11+
import platform.Foundation.NSUserDomainMask
712

813
actual fun getDatabaseBuilder(ctx: Any?): RoomDatabase.Builder<AppDatabase> {
9-
val dbFilePath = NSHomeDirectory() + "/pula-sync.db"
14+
val dbFilePath = documentDirectory() + "/pula-sync.db"
1015
return Room.databaseBuilder<AppDatabase>(
11-
name = dbFilePath,
12-
factory = { AppDatabaseConstructor.initialize() }
13-
).setDriver(BundledSQLiteDriver())
16+
name = dbFilePath, factory = { AppDatabaseConstructor.initialize() })
17+
.setDriver(BundledSQLiteDriver()).setQueryCoroutineContext(Dispatchers.IO)
18+
}
19+
20+
@OptIn(ExperimentalForeignApi::class)
21+
private fun documentDirectory(): String {
22+
val documentDirectory = NSFileManager.defaultManager.URLForDirectory(
23+
directory = NSDocumentDirectory,
24+
inDomain = NSUserDomainMask,
25+
appropriateForURL = null,
26+
create = false,
27+
error = null,
28+
)
29+
return requireNotNull(documentDirectory?.path)
1430
}

0 commit comments

Comments
 (0)