Room Database setup
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
package ac.aux.compose
|
||||
|
||||
actual class PlatformContext
|
||||
@@ -0,0 +1,32 @@
|
||||
package ac.aux.compose.database.builder
|
||||
|
||||
import ac.aux.compose.PlatformContext
|
||||
import ac.aux.compose.database.AuxDatabase
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import kotlinx.cinterop.ExperimentalForeignApi
|
||||
import platform.Foundation.NSDocumentDirectory
|
||||
import platform.Foundation.NSFileManager
|
||||
import platform.Foundation.NSUserDomainMask
|
||||
|
||||
actual object PlatformDatabaseBuilder {
|
||||
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<AuxDatabase> {
|
||||
val dbFilePath = documentDirectory() + "/aux.db"
|
||||
return Room.databaseBuilder<AuxDatabase>(
|
||||
name = dbFilePath,
|
||||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalForeignApi::class)
|
||||
private fun documentDirectory(): String {
|
||||
val documentDirectory = NSFileManager.defaultManager.URLForDirectory(
|
||||
directory = NSDocumentDirectory,
|
||||
inDomain = NSUserDomainMask,
|
||||
appropriateForURL = null,
|
||||
create = false,
|
||||
error = null,
|
||||
)
|
||||
return requireNotNull(documentDirectory?.path)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user