From 355b3885e3eeb6620cfe56cb57700b58448f1164 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Mon, 29 Mar 2021 06:41:36 -0600 Subject: [PATCH] Use androidx transaction in databases Replace the redundant SQLiteDatabase.execute() extension with the AndroidX SQLiteDatabase.transaction() extension, which does the same thing. --- .../auxio/database/BlacklistDatabase.kt | 3 ++- .../oxycblt/auxio/database/DatabaseUtils.kt | 23 ------------------- .../auxio/database/PlaybackStateDatabase.kt | 7 +++--- 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt b/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt index b200671a4..219a7ee44 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt @@ -4,6 +4,7 @@ import android.content.ContentValues import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper +import androidx.core.database.sqlite.transaction import org.oxycblt.auxio.logD /** @@ -33,7 +34,7 @@ class BlacklistDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, n fun writePaths(paths: List) { assertBackgroundThread() - writableDatabase.execute { + writableDatabase.transaction { delete(TABLE_NAME, null, null) logD("Deleted paths db") diff --git a/app/src/main/java/org/oxycblt/auxio/database/DatabaseUtils.kt b/app/src/main/java/org/oxycblt/auxio/database/DatabaseUtils.kt index 413785abe..88f90a960 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/DatabaseUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/DatabaseUtils.kt @@ -6,29 +6,6 @@ import android.os.Looper import org.oxycblt.auxio.logE import java.lang.Exception -/** - * Shortcut for running a series of [commands] on an [SQLiteDatabase]. - * @return true if the transaction was successful, false if not. - */ -fun SQLiteDatabase.execute(commands: SQLiteDatabase.() -> Unit): Boolean { - beginTransaction() - - val success = try { - commands() - setTransactionSuccessful() - true - } catch (e: Exception) { - logE("An error occurred when trying to execute commands.") - logE(e.stackTraceToString()) - - false - } - - endTransaction() - - return success -} - /** * Shortcut for querying all items in a database and running [block] with the cursor returned. * Will not run if the cursor is null. diff --git a/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt b/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt index c59c1bf1a..3118b3fbe 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt @@ -5,6 +5,7 @@ import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import androidx.core.database.getStringOrNull +import androidx.core.database.sqlite.transaction import org.oxycblt.auxio.logD /** @@ -85,7 +86,7 @@ class PlaybackStateDatabase(context: Context) : fun writeState(state: PlaybackState) { assertBackgroundThread() - writableDatabase.execute { + writableDatabase.transaction { delete(TABLE_NAME_STATE, null, null) this@PlaybackStateDatabase.logD("Wiped state db.") @@ -159,7 +160,7 @@ class PlaybackStateDatabase(context: Context) : val database = writableDatabase - database.execute { + database.transaction { delete(TABLE_NAME_QUEUE, null, null) } @@ -171,7 +172,7 @@ class PlaybackStateDatabase(context: Context) : while (position < queueItems.size) { var i = position - database.execute { + database.transaction { while (i < queueItems.size) { val item = queueItems[i] i++