@@ -3,12 +3,28 @@ package com.pula.sync.data
33import androidx.room.Room
44import androidx.room.RoomDatabase
55import 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
813actual 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