예제 #1
0
        public virtual async Task InitializePrimaryAsync()
        {
            if (StateWrapper != MvxSetupState.Uninitialized)
            {
                throw new MvxException($"Cannot start primary - as state already {StateWrapper}");
            }


            StateWrapper = MvxSetupState.InitializingPrimary;

            InitializeIoC();

            StateWrapper = MvxSetupState.InitializedPrimary;

            if (StateWrapper != MvxSetupState.InitializedPrimary)
            {
                throw new MvxException($"Cannot start seconday - as state is currently {StateWrapper}");
            }

            InitializeLoggingServices();
            InitializeDebugServices();

            StateWrapper = MvxSetupState.InitializingSecondary;

            InitializeFirstChance();

            var tasks = new[] {
                Task.Run(() => InitializePlatformServices()),
                Task.Run(() => InitializeSettings()),
                Task.Run(() => InitializeSingletonCache())
            };

            await Task.WhenAll(tasks).ConfigureAwait(false);
        }
예제 #2
0
        private void FireStateChange(MvxSetupState state)
        {
            var handler = StateChanged;

            if (handler != null)
            {
                handler(this, new MvxSetupStateEventArgs(state));
            }
        }
예제 #3
0
        public virtual async Task InitializeSecondaryAsync()
        {
            await PerformBootstrapActionsAsync();

            var pluginManager = InitializePluginFramework();

            var app = CreateApp();

            Mvx.RegisterSingleton(app);

            InitializeApp(pluginManager, app);

            await Task.Run(() => InitializeViewsContainer()).ConfigureAwait(false);

            var tasks = new[] {
                Task.Run(() => InitializeStringToTypeParser()),
                Task.Run(() => InitializeCommandHelper()),
                Task.Run(() =>
                {
                    InitializeNavigationService(app);
                    LoadNavigationServiceRoutes();
                }),
                Task.Run(() => InitializeViewModelTypeFinder()),
                Task.Run(() => InitializeViewDispatcher()),
                Task.Run(() => InitializeViewLookup()),
                Task.Run(() => InitializeCommandCollectionBuilder()),
                Task.Run(() => InitializeNavigationSerializer()),
                Task.Run(() => InitializeInpcInterception()),
                Task.Run(() => InitializeViewModelCache())
            };

            await Task.WhenAll(tasks).ConfigureAwait(false);

            InitializeLastChance();

            SetupLog?.Trace("Setup: Secondary end");

            StateWrapper = MvxSetupState.Initialized;
        }
예제 #4
0
 private void FireStateChange(MvxSetupState state)
 {
     StateChanged?.Invoke(this, new MvxSetupStateEventArgs(state));
 }
예제 #5
0
 public MvxSetupStateEventArgs(MvxSetupState setupState)
 {
     SetupState = setupState;
 }
 private void FireStateChange(MvxSetupState state)
 {
     var handler = StateChanged;
     if (handler != null)
     {
         handler(this, new MvxSetupStateEventArgs(state));
     }
 }
 public MvxSetupStateEventArgs(MvxSetupState setupState)
 {
     SetupState = setupState;
 }
예제 #8
0
 private void FireStateChange(MvxSetupState state)
 {
     var handler = StateChanged;
     handler?.Invoke(this, new MvxSetupStateEventArgs(state));
 }
예제 #9
0
 public virtual void InitializePrimary()
 {
     if (State != MvxSetupState.Uninitialized)
     {
         throw new MvxException("Cannot start primary - as state already {0}", State);
     }
     State = MvxSetupState.InitializingPrimary;
     MvxTrace.Trace("Setup: Primary start");
     InitializeIoC();
     State = MvxSetupState.InitializedPrimary;
     if (State != MvxSetupState.InitializedPrimary)
     {
         throw new MvxException("Cannot start seconday - as state is currently {0}", State);
     }
     State = MvxSetupState.InitializingSecondary;
     MvxTrace.Trace("Setup: FirstChance start");
     InitializeFirstChance();
     MvxTrace.Trace("Setup: DebugServices start");
     InitializeDebugServices();
     MvxTrace.Trace("Setup: PlatformServices start");
     InitializePlatformServices();
 }
예제 #10
0
 public virtual void InitializeSecondary()
 {
     MvxTrace.Trace("Setup: Bootstrap actions");
     PerformBootstrapActions();
     MvxTrace.Trace("Setup: Singleton Cache start");
     InitializeSingletonCache();
     MvxTrace.Trace("Setup: MvvmCross settings start");
     InitializeSettings();
     MvxTrace.Trace("Setup: StringToTypeParser start");
     InitializeStringToTypeParser();
     MvxTrace.Trace("Setup: ViewModelFramework start");
     InitializeViewModelFramework();
     MvxTrace.Trace("Setup: PluginManagerFramework start");
     var pluginManager = InitializePluginFramework();
     MvxTrace.Trace("Setup: App start");
     InitializeApp(pluginManager);
     MvxTrace.Trace("Setup: ViewModelTypeFinder start");
     InitialiseViewModelTypeFinder();
     MvxTrace.Trace("Setup: ViewsContainer start");
     InitializeViewsContainer();
     MvxTrace.Trace("Setup: ViewDispatcher start");
     InitiaiseViewDispatcher();
     MvxTrace.Trace("Setup: Views start");
     InitializeViewLookup();
     MvxTrace.Trace("Setup: CommandCollectionBuilder start");
     InitialiseCommandCollectionBuilder();
     MvxTrace.Trace("Setup: NavigationSerializer start");
     InitializeNavigationSerializer();
     MvxTrace.Trace("Setup: InpcInterception start");
     InitializeInpcInterception();
     MvxTrace.Trace("Setup: LastChance start");
     InitializeLastChance();
     MvxTrace.Trace("Setup: Secondary end");
     State = MvxSetupState.Initialized;
 }
예제 #11
0
        private void FireStateChange(MvxSetupState state)
        {
            var handler = this.StateChanged;

            handler?.Invoke(this, new MvxSetupStateEventArgs(state));
        }
예제 #12
0
 private void FireStateChange(MvxSetupState state)
 {
     StateChanged?.Invoke(this, new MvxSetupStateEventArgs(state));
 }