mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-05-28 04:20:20 +02:00
fix(bridge/messagelogger): database connection leak
This commit is contained in:
parent
ead9e7830b
commit
6c18f98839
@ -10,18 +10,31 @@ import java.util.UUID
|
||||
class MessageLoggerWrapper(
|
||||
private val databaseFile: File
|
||||
): MessageLoggerInterface.Stub() {
|
||||
private lateinit var database: SQLiteDatabase
|
||||
private var _database: SQLiteDatabase? = null
|
||||
|
||||
private val database get() = synchronized(this) {
|
||||
_database?.takeIf { it.isOpen } ?: run {
|
||||
_database?.close()
|
||||
val openedDatabase = SQLiteDatabase.openDatabase(databaseFile.absolutePath, null, SQLiteDatabase.CREATE_IF_NECESSARY or SQLiteDatabase.OPEN_READWRITE)
|
||||
SQLiteDatabaseHelper.createTablesFromSchema(openedDatabase, mapOf(
|
||||
"messages" to listOf(
|
||||
"id INTEGER PRIMARY KEY",
|
||||
"conversation_id VARCHAR",
|
||||
"message_id BIGINT",
|
||||
"message_data BLOB"
|
||||
)
|
||||
))
|
||||
_database = openedDatabase
|
||||
openedDatabase
|
||||
}
|
||||
}
|
||||
|
||||
protected fun finalize() {
|
||||
_database?.close()
|
||||
}
|
||||
|
||||
fun init() {
|
||||
database = SQLiteDatabase.openDatabase(databaseFile.absolutePath, null, SQLiteDatabase.CREATE_IF_NECESSARY or SQLiteDatabase.OPEN_READWRITE)
|
||||
SQLiteDatabaseHelper.createTablesFromSchema(database, mapOf(
|
||||
"messages" to listOf(
|
||||
"id INTEGER PRIMARY KEY",
|
||||
"conversation_id VARCHAR",
|
||||
"message_id BIGINT",
|
||||
"message_data BLOB"
|
||||
)
|
||||
))
|
||||
|
||||
}
|
||||
|
||||
override fun getLoggedIds(conversationId: Array<String>, limit: Int): LongArray {
|
||||
|
Loading…
x
Reference in New Issue
Block a user