public CoreViewModel( SettingsService settingsService, GammaService gammaService, HotKeyService hotKeyService, ExternalApplicationService externalApplicationService) { _settingsService = settingsService; _gammaService = gammaService; _hotKeyService = hotKeyService; _externalApplicationService = externalApplicationService; _updateConfigurationTimer = Timer.Create(TimeSpan.FromMilliseconds(50), UpdateConfiguration); _updateInstantTimer = Timer.Create(TimeSpan.FromMilliseconds(50), UpdateInstant); _updateIsPausedTimer = Timer.Create(TimeSpan.FromSeconds(1), UpdateIsPaused); // Cancel 'disable temporarily' when switching to enabled this.Bind(o => o.IsEnabled, (sender, args) => { if (IsEnabled) { _enableAfterDelayRegistration?.Dispose(); } }); // Handle settings changes _settingsService.SettingsSaved += (sender, args) => { Refresh(); RegisterHotKeys(); }; }
public RootViewModel(IViewModelFactory viewModelFactory, DialogManager dialogManager, SettingsService settingsService, UpdateService updateService, GammaService gammaService, HotKeyService hotKeyService, RegistryService registryService, ExternalApplicationService externalApplicationService, SystemEventService systemEventService) { _viewModelFactory = viewModelFactory; _dialogManager = dialogManager; _settingsService = settingsService; _updateService = updateService; _gammaService = gammaService; _hotKeyService = hotKeyService; _registryService = registryService; _externalApplicationService = externalApplicationService; _systemEventService = systemEventService; // Title DisplayName = $"{App.Name} v{App.VersionString}"; // Cancel 'disable temporarily' when switched on this.Bind(o => o.IsEnabled, (sender, args) => { if (IsEnabled) { _enableAfterDelayTimer.Stop(); } }); // Initialize timers _updateConfigurationTimer = new AutoResetTimer(UpdateConfiguration); _updateInstantTimer = new AutoResetTimer(UpdateInstant); _updateIsPausedTimer = new AutoResetTimer(UpdateIsPaused); _checkForUpdatesTimer = new AutoResetTimer(async() => await _updateService.CheckPrepareUpdateAsync()); _pollingTimer = new AutoResetTimer(PollGamma); _enableAfterDelayTimer = new ManualResetTimer(Enable); // Reset gamma when power settings change _systemEventService.DisplayStateChanged += (sender, args) => InvalidateGamma(); SystemEvents.DisplaySettingsChanging += (sender, args) => InvalidateGamma(); SystemEvents.DisplaySettingsChanged += (sender, args) => InvalidateGamma(); }
public CoreViewModel( SettingsService settingsService, GammaService gammaService, HotKeyService hotKeyService, ExternalApplicationService externalApplicationService) { _settingsService = settingsService; _gammaService = gammaService; _hotKeyService = hotKeyService; _externalApplicationService = externalApplicationService; _updateConfigurationTimer = new AutoResetTimer(UpdateConfiguration); _updateInstantTimer = new AutoResetTimer(UpdateInstant); _updateIsPausedTimer = new AutoResetTimer(UpdateIsPaused); _pollingTimer = new AutoResetTimer(PollGamma); _enableAfterDelayTimer = new ManualResetTimer(Enable); // Cancel 'disable temporarily' when switched to enabled this.Bind(o => o.IsEnabled, (sender, args) => { if (IsEnabled) { _enableAfterDelayTimer.Stop(); } }); // Handle settings changes _settingsService.SettingsSaved += (sender, args) => { _isStale = true; Refresh(); RegisterHotKeys(); }; // Handle display settings changes _systemEvents.DisplaySettingsChanged += (sender, args) => _isStale = true; _systemEvents.DisplayStateChanged += (sender, args) => _isStale = true; }