Use database executors instead of compose coroutines to launch database operations

This commit is contained in:
vfsfitvnm
2022-06-27 22:07:07 +02:00
parent 85f89ec799
commit 2cbb5a4ba4
11 changed files with 88 additions and 107 deletions

View File

@@ -207,8 +207,19 @@ object Converters {
val Database.internal: RoomDatabase
get() = DatabaseInitializer.Instance
fun Database.checkpoint() {
internal.getOpenHelper().writableDatabase.run {
fun query(block: () -> Unit) = DatabaseInitializer.Instance.getQueryExecutor().execute(block)
fun transaction(block: () -> Unit) = with(DatabaseInitializer.Instance) {
getTransactionExecutor().execute {
runInTransaction(block)
}
}
val RoomDatabase.path: String
get() = getOpenHelper().writableDatabase.path
fun RoomDatabase.checkpoint() {
getOpenHelper().writableDatabase.run {
query("PRAGMA journal_mode").use { cursor ->
if (cursor.moveToFirst()) {
when (cursor.getString(0).lowercase()) {