void IConfigChangeHandler.ConfigUpdated(ConfigSettings newSettings) { lock (_countdownTimer) { if (newSettings.ShowCountdown != _countdownTimer.IsSwitchedOn) { if (newSettings.ShowCountdown) { _countdownTimer.SwitchOn(); _countdownTimer.Start(); } else { _countdownTimer.Stop(); _countdownTimer.SwitchOff(); } _view.Invoke(() => { _countdownTimer.Execute(); // ensure the countdown is set/executed before making visible _view.ShowCountdown(newSettings.ShowCountdown); }); } } }
public void Handle(Exception fetchException) { _log.Error(fetchException.Message, fetchException); _view.DataContext = null; try { _view.Invoke(() => _view.ShowMessage("Connection problem")); } catch (Exception exception) { // this really shouldn't happen but we're getting an inexplicable Win32Exception _log.Error(exception.Message, exception); } }
public void Load(Skin newSkin) { _view.Invoke(() => { newSkin.Resource = _skinResourceLoader.LoadOrGet(newSkin); var appResources = Application.Current.Resources.MergedDictionaries; if (appResources.Contains(newSkin.Resource)) { appResources.Remove(newSkin.Resource); } appResources.Add(newSkin.Resource); }); }