35 lines
994 B
Kotlin
35 lines
994 B
Kotlin
package com.rosetta.messenger.database
|
|
|
|
import android.content.Context
|
|
import androidx.room.Database
|
|
import androidx.room.Room
|
|
import androidx.room.RoomDatabase
|
|
|
|
@Database(
|
|
entities = [EncryptedAccountEntity::class],
|
|
version = 1,
|
|
exportSchema = false
|
|
)
|
|
abstract class RosettaDatabase : RoomDatabase() {
|
|
abstract fun accountDao(): AccountDao
|
|
|
|
companion object {
|
|
@Volatile
|
|
private var INSTANCE: RosettaDatabase? = null
|
|
|
|
fun getDatabase(context: Context): RosettaDatabase {
|
|
return INSTANCE ?: synchronized(this) {
|
|
val instance = Room.databaseBuilder(
|
|
context.applicationContext,
|
|
RosettaDatabase::class.java,
|
|
"rosetta_secure.db"
|
|
)
|
|
.setJournalMode(JournalMode.WRITE_AHEAD_LOGGING) // WAL mode for performance
|
|
.build()
|
|
INSTANCE = instance
|
|
instance
|
|
}
|
|
}
|
|
}
|
|
}
|