diff --git a/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java b/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java --- a/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java +++ b/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java @@ -1,12 +1,16 @@ package app.comm.android; import app.comm.android.fbjni.CommHybrid; +import app.comm.android.fbjni.CommMMKV; import app.comm.android.fbjni.CommSecureStore; +import app.comm.android.fbjni.DatabaseInitializer; +import app.comm.android.fbjni.GlobalDBSingleton; import com.facebook.react.bridge.JSIModuleSpec; import com.facebook.react.bridge.JavaScriptContextHolder; import com.facebook.react.bridge.ReactApplicationContext; import com.swmansion.reanimated.ReanimatedJSIModulePackage; import expo.modules.securestore.SecureStoreModule; +import java.io.File; import java.util.Collections; import java.util.List; import java.util.function.Supplier; @@ -22,6 +26,13 @@ CommSecureStore.getInstance().initialize(secureStoreModuleSupplier); CommHybrid.initHybrid(reactApplicationContext); super.getJSIModules(reactApplicationContext, jsContext); + + File sqliteFile = reactApplicationContext.getDatabasePath("comm.sqlite"); + GlobalDBSingleton.scheduleOrRun(() -> { + DatabaseInitializer.initializeDatabaseManager(sqliteFile.getPath()); + }); + CommMMKV.initialize(); + return Collections.emptyList(); } } diff --git a/native/android/app/src/main/java/app/comm/android/MainApplication.java b/native/android/app/src/main/java/app/comm/android/MainApplication.java --- a/native/android/app/src/main/java/app/comm/android/MainApplication.java +++ b/native/android/app/src/main/java/app/comm/android/MainApplication.java @@ -6,10 +6,6 @@ import androidx.annotation.NonNull; import androidx.multidex.MultiDexApplication; import app.comm.android.commservices.CommServicesPackage; -import app.comm.android.fbjni.CommMMKV; -import app.comm.android.fbjni.CommSecureStore; -import app.comm.android.fbjni.DatabaseInitializer; -import app.comm.android.fbjni.GlobalDBSingleton; import app.comm.android.newarchitecture.MainApplicationReactNativeHost; import app.comm.android.notifications.CommAndroidNotificationsPackage; import com.facebook.react.PackageList; @@ -23,7 +19,6 @@ import com.wix.reactnativekeyboardinput.KeyboardInputPackage; import expo.modules.ApplicationLifecycleDispatcher; import expo.modules.ReactNativeHostWrapper; -import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.security.Security; @@ -91,8 +86,6 @@ Security.insertProviderAt(new org.conscrypt.OpenSSLProvider(), 1); SoLoader.init(this, /* native exopackage */ false); - this.initializeDatabase(); - CommMMKV.initialize(); ApplicationLifecycleDispatcher.onApplicationCreate(this); try { Field field = CursorWindow.class.getDeclaredField("sCursorWindowSize"); @@ -114,15 +107,4 @@ public static Context getMainApplicationContext() { return MainApplication.context; } - - private void initializeDatabase() { - File sqliteFile = - this.getApplicationContext().getDatabasePath("comm.sqlite"); - CommSecureStore.getInstance().initialize( - ExpoUtils.createExpoSecureStoreSupplier(this.getApplicationContext())); - - GlobalDBSingleton.scheduleOrRun(() -> { - DatabaseInitializer.initializeDatabaseManager(sqliteFile.getPath()); - }); - } }