private void DisableOverlay()
        {
            if (_overlay == null)
            {
                return;
            }

            var overlayManager = IoCManager.Resolve <IOverlayManager>();

            overlayManager.RemoveOverlay(_overlay.ID);
            _overlay = null;
            _cancelToken.Cancel();
            _cancelToken = null;
        }
        private void EnableOverlay(double duration)
        {
            // If the timer gets reset
            if (_overlay != null)
            {
                _overlay.Duration  = _duration;
                _overlay.StartTime = _startTime;
                _cancelToken.Cancel();
            }
            else
            {
                var overlayManager = IoCManager.Resolve <IOverlayManager>();
                _overlay = new FlashOverlay(_duration);
                overlayManager.AddOverlay(_overlay);
            }

            _cancelToken = new CancellationTokenSource();
            Timer.Spawn((int)duration * 1000, DisableOverlay, _cancelToken.Token);
        }