Exemple #1
0
        private static async Task LoadContext()
        {
            await ServiceLocator.TraceService.LoadLocal();

            _context = new CatrobatContext();

            var localSettings = await ServiceLocator.ContextService.RestoreLocalSettings();
            _context.LocalSettings = localSettings;

            if (localSettings == null)
            {
                _context.LocalSettings = new LocalSettings();

                var defaultProject = await ServiceLocator.ContextService.
                    RestoreDefaultProgram(AppResources.Main_DefaultProgramName);

                ProgramChecker.CheckProgram(defaultProject);

                _context.LocalSettings.CurrentProgramName = defaultProject.Name;
                await defaultProject.Save();
            }

            if (_context.LocalSettings.CurrentLanguageString == null)
                _context.LocalSettings.CurrentLanguageString =
                    ServiceLocator.CultureService.GetCulture().TwoLetterISOLanguageName;

            var themeChooser = ServiceLocator.ThemeChooser;
            if (_context.LocalSettings.CurrentThemeIndex != -1)
                themeChooser.SelectedThemeIndex = _context.LocalSettings.CurrentThemeIndex;

            if (_context.LocalSettings.CurrentLanguageString != null)
                ServiceLocator.GetInstance<SettingsViewModel>().CurrentCulture =
                    new CultureInfo(_context.LocalSettings.CurrentLanguageString);

            var themeChooserChangedMessage = new GenericMessage<ThemeChooser>(themeChooser);
            Messenger.Default.Send(themeChooserChangedMessage, ViewModelMessagingToken.ThemeChooserListener);

            var contextChangedMessage = new GenericMessage<CatrobatContextBase>(_context);
            Messenger.Default.Send(contextChangedMessage, ViewModelMessagingToken.ContextListener);

            var localProjectsChangedMessage = new MessageBase();
            Messenger.Default.Send(localProjectsChangedMessage, ViewModelMessagingToken.LocalProgramsChangedListener);

            //var message = new GenericMessage<Project>(currentProject);
            //Messenger.Default.Send(message, ViewModelMessagingToken.CurrentProgramChangedListener);

            // allow viewmodels to load from settings
            Messenger.Default.Send(new GenericMessage<LocalSettings>(_context.LocalSettings), ViewModelMessagingToken.LoadSettings);
        }
 private void ContextChangedAction(GenericMessage <CatrobatContextBase> message)
 {
     _context = message.Content;
 }
 private void ContextChangedAction(GenericMessage<CatrobatContextBase> message)
 {
     _context = message.Content;
 }