private ReactInstanceManager(
            string jsBundleFile,
            string jsMainModuleName,
            IReadOnlyList <IReactPackage> packages,
            bool useDeveloperSupport,
            LifecycleState initialLifecycleState,
            UIImplementationProvider uiImplementationProvider,
            Action <Exception> nativeModuleCallExceptionHandler)
        {
            if (packages == null)
            {
                throw new ArgumentNullException(nameof(packages));
            }
            if (uiImplementationProvider == null)
            {
                throw new ArgumentNullException(nameof(uiImplementationProvider));
            }

            _jsBundleFile     = jsBundleFile;
            _jsMainModuleName = jsMainModuleName;
            _packages         = packages;

            _useDeveloperSupport = useDeveloperSupport;
            _devSupportManager   = _useDeveloperSupport
                ? (IDevSupportManager) new DevSupportManager(
                new ReactInstanceDevCommandsHandler(this),
                _jsBundleFile,
                _jsMainModuleName)
                : new DisabledDevSupportManager();

            _lifecycleState                   = initialLifecycleState;
            _uiImplementationProvider         = uiImplementationProvider;
            _nativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
        }
        private ReactInstanceManager(
            string jsBundleFile,
            string jsMainModuleName,
            IReadOnlyList<IReactPackage> packages,
            bool useDeveloperSupport,
            LifecycleState initialLifecycleState,
            UIImplementationProvider uiImplementationProvider,
            Action<Exception> nativeModuleCallExceptionHandler)
        {
            if (packages == null)
                throw new ArgumentNullException(nameof(packages));
            if (uiImplementationProvider == null)
                throw new ArgumentNullException(nameof(uiImplementationProvider));

            _jsBundleFile = jsBundleFile;
            _jsMainModuleName = jsMainModuleName;
            _packages = packages;

            _useDeveloperSupport = useDeveloperSupport;
            _devSupportManager = _useDeveloperSupport
                ? (IDevSupportManager)new DevSupportManager(
                    new ReactInstanceDevCommandsHandler(this),
                    _jsBundleFile,
                    _jsMainModuleName)
                : new DisabledDevSupportManager();

            _lifecycleState = initialLifecycleState;
            _uiImplementationProvider = uiImplementationProvider;
            _nativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
        }
        internal ReactInstanceManager(
            string jsBundleFile,
            string jsMainModuleName,
            IReadOnlyList <IReactPackage> packages,
            bool useDeveloperSupport,
            LifecycleState initialLifecycleState,
            UIImplementationProvider uiImplementationProvider,
            Func <IJavaScriptExecutor> javaScriptExecutorFactory,
            Action <Exception> nativeModuleCallExceptionHandler,
            bool lazyViewManagersEnabled)
        {
            RnLog.Info(ReactConstants.RNW, $"ReactInstanceManager: constructor");

            if (packages == null)
            {
                throw new ArgumentNullException(nameof(packages));
            }
            if (uiImplementationProvider == null)
            {
                throw new ArgumentNullException(nameof(uiImplementationProvider));
            }
            if (javaScriptExecutorFactory == null)
            {
                throw new ArgumentNullException(nameof(javaScriptExecutorFactory));
            }

            _jsBundleFile     = jsBundleFile;
            _jsMainModuleName = jsMainModuleName;
            _packages         = packages;

            _useDeveloperSupport = useDeveloperSupport;
            _devSupportManager   = _useDeveloperSupport
                ? (IDevSupportManager) new DevSupportManager(
                new ReactInstanceDevCommandsHandler(this),
                _jsBundleFile == null,
                _jsMainModuleName)
                : new DisabledDevSupportManager();

            _lifecycleStateMachine            = new LifecycleStateMachine(initialLifecycleState);
            _uiImplementationProvider         = uiImplementationProvider;
            _javaScriptExecutorFactory        = javaScriptExecutorFactory;
            _nativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
            _lazyViewManagersEnabled          = lazyViewManagersEnabled;
        }
 /// <summary>
 /// Instantiates the <see cref="ExceptionsManagerModule"/>.
 /// </summary>
 /// <param name="devSupportManager">
 /// The developer support manager instance.
 /// </param>
 public ExceptionsManagerModule(IDevSupportManager devSupportManager)
 {
     _devSupportManager = devSupportManager;
 }
 public DevInternalSettings(IDevSupportManager debugManager)
 {
     _debugManager = debugManager;
 }