static void initReactInstanceManager()

in android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java [171:253]


    static void initReactInstanceManager(Activity activity) {
        if (reactInstanceManager != null) {
            return;
        }

        List<ReactPackage> packages
            = new ArrayList<>(Arrays.asList(
                new com.reactnativecommunity.asyncstorage.AsyncStoragePackage(),
                new com.ocetnik.timer.BackgroundTimerPackage(),
                new com.calendarevents.CalendarEventsPackage(),
                new com.corbt.keepawake.KCKeepAwakePackage(),
                new com.facebook.react.shell.MainReactPackage(),
                new com.reactnativecommunity.netinfo.NetInfoPackage(),
                new com.oblador.performance.PerformancePackage(),
                new com.reactnativecommunity.slider.ReactSliderPackage(),
                new com.brentvatne.react.ReactVideoPackage(),
                new com.swmansion.reanimated.ReanimatedPackage(),
                new org.reactnative.maskedview.RNCMaskedViewPackage(),
                new com.reactnativecommunity.webview.RNCWebViewPackage(),
                new com.kevinresol.react_native_default_preference.RNDefaultPreferencePackage(),
                new com.learnium.RNDeviceInfo.RNDeviceInfo(),
                new com.swmansion.gesturehandler.react.RNGestureHandlerPackage(),
                new org.linusu.RNGetRandomValuesPackage(),
                new com.rnimmersive.RNImmersivePackage(),
                new com.swmansion.rnscreens.RNScreensPackage(),
                new com.zmxv.RNSound.RNSoundPackage(),
                new com.th3rdwave.safeareacontext.SafeAreaContextPackage(),
                new com.horcrux.svg.SvgPackage(),
                new ReactPackageAdapter() {
                    @Override
                    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
                        return ReactInstanceManagerHolder.createNativeModules(reactContext);
                    }
                    @Override
                    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
                        return ReactInstanceManagerHolder.createViewManagers(reactContext);
                    }
                }));

        // AmplitudeReactNativePackage
        try {
            Class<?> amplitudePackageClass = Class.forName("com.amplitude.reactnative.AmplitudeReactNativePackage");
            Constructor constructor = amplitudePackageClass.getConstructor();
            packages.add((ReactPackage)constructor.newInstance());
        } catch (Exception e) {
            // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled.
        }

        // RNGoogleSigninPackage
        try {
            Class<?> googlePackageClass = Class.forName("co.apptailor.googlesignin.RNGoogleSigninPackage");
            Constructor constructor = googlePackageClass.getConstructor();
            packages.add((ReactPackage)constructor.newInstance());
        } catch (Exception e) {
            // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled.
        }

        // Keep on using JSC, the jury is out on Hermes.
        JSCExecutorFactory jsFactory
            = new JSCExecutorFactory("", "");

        reactInstanceManager
            = ReactInstanceManager.builder()
                .setApplication(activity.getApplication())
                .setCurrentActivity(activity)
                .setBundleAssetName("index.android.bundle")
                .setJSMainModulePath("index.android")
                .setJavaScriptExecutorFactory(jsFactory)
                .addPackages(packages)
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();

        // Disable delta updates on Android, they have caused trouble.
        DevInternalSettings devSettings
            = (DevInternalSettings)reactInstanceManager.getDevSupportManager().getDevSettings();
        if (devSettings != null) {
            devSettings.setBundleDeltasEnabled(false);
        }

        // Register our uncaught exception handler.
        JitsiMeetUncaughtExceptionHandler.register();
    }