From c3a49766bf42cdaf53f652d308ccc733c33eff00 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 6 Jan 2025 10:23:58 -0500 Subject: [PATCH] Initialize database error handler with application instance. --- .../thoughtcrime/securesms/database/KeyValueDatabase.java | 2 +- .../thoughtcrime/securesms/database/MegaphoneDatabase.java | 2 +- .../org/thoughtcrime/securesms/database/SignalDatabase.kt | 2 +- .../securesms/database/SqlCipherErrorHandler.kt | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java index 4f7c0380ac..af7d34e196 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java @@ -74,7 +74,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase } private KeyValueDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret, @NonNull String name) { - super(application, name, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(name), new SqlCipherDatabaseHook(), true); + super(application, name, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(application, name), new SqlCipherDatabaseHook(), true); this.application = application; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java index 5aca02eef7..490cf8332c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java @@ -65,7 +65,7 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas } public MegaphoneDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret) { - super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook(), true); + super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(application, DATABASE_NAME), new SqlCipherDatabaseHook(), true); this.application = application; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SignalDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/SignalDatabase.kt index 3efb7ba9fc..db7070b74c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SignalDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SignalDatabase.kt @@ -31,7 +31,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data null, SignalDatabaseMigrations.DATABASE_VERSION, 0, - SqlCipherErrorHandler(name), + SqlCipherErrorHandler(context, name), SqlCipherDatabaseHook(), true ), diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt index 5956e73ec5..84b738d33a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.database +import android.app.Application import android.content.Context import net.zetetic.database.DatabaseErrorHandler import net.zetetic.database.sqlcipher.SQLiteConnection @@ -9,7 +10,6 @@ import org.signal.core.util.CursorUtil import org.signal.core.util.ExceptionUtil import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider -import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.CountDownLatch import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicReference @@ -18,7 +18,7 @@ import java.util.concurrent.atomic.AtomicReference * The default error handler wipes the file. This one instead prints some diagnostics and then crashes so the original corrupt file isn't lost. */ @Suppress("ClassName") -class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHandler { +class SqlCipherErrorHandler(private val application: Application, private val databaseName: String) : DatabaseErrorHandler { companion object { private val TAG = Log.tag(SqlCipherErrorHandler::class.java) @@ -32,7 +32,7 @@ class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHan } try { - val result: DiagnosticResults = runDiagnostics(AppDependencies.application, db) + val result: DiagnosticResults = runDiagnostics(application, db) var lines: List = result.logs.split("\n") lines = listOf("Database '$databaseName' corrupted!", "[sqlite] $message", "Diagnostics results:") + lines