diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index d306896763..e2f64081e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -121,12 +121,12 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr super.onCreate(); AppStartup.getInstance().addBlocking("security-provider", this::initializeSecurityProvider) + .addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load(this)) .addBlocking("logging", () -> { initializeLogging(); Log.i(TAG, "onCreate()"); }) .addBlocking("crash-handling", this::initializeCrashHandling) - .addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load(this)) .addBlocking("rx-init", () -> { RxJavaPlugins.setInitIoSchedulerHandler(schedulerSupplier -> Schedulers.from(SignalExecutors.BOUNDED_IO, true, false)); RxJavaPlugins.setInitComputationSchedulerHandler(schedulerSupplier -> Schedulers.from(SignalExecutors.BOUNDED, true, false)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java index 6c5087ec6e..ffe13349c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java @@ -94,6 +94,7 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase { if (instance == null) { synchronized (JobDatabase.class) { if (instance == null) { + SqlCipherLibraryLoader.load(context); instance = new JobDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } 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 c48ea8b245..e714f258b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java @@ -54,6 +54,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase if (instance == null) { synchronized (KeyValueDatabase.class) { if (instance == null) { + SqlCipherLibraryLoader.load(context); instance = new KeyValueDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt index 7d9fec869b..c90df7400f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt @@ -71,6 +71,7 @@ class LogDatabase private constructor( if (instance == null) { synchronized(LogDatabase::class.java) { if (instance == null) { + SqlCipherLibraryLoader.load(context) instance = LogDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)) } } 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 d1c2757ea4..5e4c30e4a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java @@ -57,6 +57,7 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas if (instance == null) { synchronized (MegaphoneDatabase.class) { if (instance == null) { + SqlCipherLibraryLoader.load(context); instance = new MegaphoneDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt index 936b6165e2..599d9731e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt @@ -10,6 +10,7 @@ import net.sqlcipher.database.SQLiteDatabase class SqlCipherLibraryLoader { companion object { + @Volatile private var loaded = false private val LOCK = Object()