Пример #1
0
 public void SetAutoMode(AutoModeType modeType)
 {
     _timer.Stop();
     _autoMode = modeType switch
     {
         AutoModeType.Disable => (IAutoMode)null,
         AutoModeType.ForegroundMode => new ForegroundMode(),
         AutoModeType.BlacklistMode => new AutoMode(_coreInvoker.UserSettings),
         AutoModeType.WhitelistMode => new AutoMode(_coreInvoker.UserSettings),
         _ => throw new ArgumentOutOfRangeException(nameof(modeType), modeType, null)
     };
     _timer.Start();
 }
Пример #2
0
        public TaskbarController()
        {
            // Initialize the native method.
            Initialization();

            // Load AutoMode as fast as possible.
            switch (Settings.ModeType)
            {
            case AutoModeType.Disabled:
#if DEBUG
                _autoMode = new DumbMode();
#endif
                break;

            case AutoModeType.ForegroundMode:
                _autoMode = new ForegroundMode();
                break;

            case AutoModeType.ClassicAutoMode:
            case AutoModeType.ClassicAdaptiveMode:
            case AutoModeType.WhitelistMode:
            case AutoModeType.BlacklistMode:
                _autoMode = new AutoMode();
                break;

            default:
#if DEBUG
                throw new ArgumentOutOfRangeException();
#else
                Settings.ModeType = AutoModeType.Disabled;
#endif
            }

            // timer is running on UI thread.
            _timer = new Timer(375);
            // if AutoMode is Enabled, then run it every 375 milliseconds.
            _timer.Elapsed += Timer_Elapsed;
            _timer.Start();
            Application.ApplicationExit += (s, e) =>
            {
                _timer.Dispose();
                _container.Dispose();
            };
            // Start Settings Tray
            _tray = new IconTray(_container);
        }
Пример #3
0
        private void SetAutoMode(AutoModeType modeType)
        {
            _autoModeTimer.Stop();
            _autoMode = modeType switch
            {
                AutoModeType.Disable => new DisableMode(_coreInvoker.UserSettings),
                AutoModeType.AutoHideApiMode => new AutoHideApiMode(_coreInvoker.UserSettings),
                AutoModeType.ForegroundMode => new ForegroundMode(_coreInvoker.UserSettings),
                AutoModeType.BlockListMode => new BlockListMode(_coreInvoker.UserSettings),
                AutoModeType.AllowlistMode => new AllowlistMode(_coreInvoker.UserSettings),
                _ => throw new ArgumentOutOfRangeException(nameof(modeType), modeType, null)
            };

            if (_autoMode != null)
            {
                _autoModeTimer.Start();
            }
            else
            {
                ResetState();
            }
        }