commit 9ff818b546a398052e1a9e1183d507713f433354
parent 759840bd10a9f468b15bf14149dbe4f5bbe76640
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Sat, 3 Feb 2024 19:21:37 +0100
fix(core): database cache
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/database/DatabaseAccess.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/database/DatabaseAccess.kt
@@ -33,7 +33,8 @@ class DatabaseAccess(
private val openedDatabases = mutableMapOf<DatabaseType, SQLiteDatabase>()
private fun useDatabase(database: DatabaseType, writeMode: Boolean = false): SQLiteDatabase? {
- if (openedDatabases.containsKey(database) && openedDatabases[database]?.isOpen == true) {
+ // only cache read-only databases
+ if (!writeMode && openedDatabases.containsKey(database) && openedDatabases[database]?.isOpen == true) {
return openedDatabases[database]
}
@@ -54,12 +55,11 @@ class DatabaseAccess(
)
}.onFailure {
context.log.error("Failed to open database ${database.fileName}!", it)
- }.getOrNull()?.also {
+ }.getOrNull()?.takeIf { !writeMode }?.also {
openedDatabases[database] = it
}
}
-
private fun <T> SQLiteDatabase.performOperation(query: SQLiteDatabase.() -> T?): T? {
return runCatching {
if (NativeLib.initialized && openedDatabases[DatabaseType.ARROYO] == this) {