Example #1
0
 private void OnTimerStatusChanged(object sender, PomodoroTimerStateChangedEventArgs eventArgs)
 {
     PomodoroTimerStateChangedEvent?.Invoke(
         this,
         eventArgs
         );
 }
        private async void WaitForStart()
        {
            PomodoroStatus = PomodoroTimerState.Ready(PomodoroSettings.PomodoroDuration);
            await StorageService.SaveAppState(PomodoroStatus);

            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("WaitForStart");
        }
        public async void PausePomodoro()
        {
            TimerService.Stop();
            PomodoroStatus = PomodoroTimerState.Paused(PomodoroSettings.PomodoroDuration, PomodoroStatus.RemainingTime);
            await StorageService.SaveAppState(PomodoroStatus);

            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("PausePomodoro");
        }
        public async void StartBreak()
        {
            TimerService.Start(PomodoroSettings.PomodoroBreakDuration);
            PomodoroStatus = PomodoroTimerState.Break(PomodoroSettings.PomodoroBreakDuration);
            await StorageService.SaveAppState(PomodoroStatus);

            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("StartBreak");
        }
        public async void StopPomodoro()
        {
            TimerService.Stop();

            PomodoroStatus = PomodoroTimerState.Stopped();

            await StorageService.SaveAppState(PomodoroStatus);

            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("StopPomodoro");
        }
        public async void StartSessionBreak()
        {
            FinishedWitoutSessionBreak = 0;
            TimerService.Start(PomodoroSettings.SessionBreakDuration);

            PomodoroStatus = PomodoroTimerState.SessionBreak(PomodoroSettings.SessionBreakDuration);

            await StorageService.SaveAppState(PomodoroStatus);

            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("StartSessionBreak");
        }
        public void StartPomodoro()
        {
            // check if paused
            if (PomodoroStatus.PomodoroState == PomodoroState.Pomodoro &&
                PomodoroStatus.TimerState == TimerState.Paused)
            {
                PomodoroStatus = PomodoroTimerState.Pomodoro(PomodoroStatus.RunTime, PomodoroStatus.RemainingRunTime);
            }
            else
            {
                // start new pomodoro
                PomodoroStatus = PomodoroTimerState.Pomodoro(PomodoroSettings.PomodoroDuration, PomodoroSettings.PomodoroDuration);
            }

            TimerService.Start(PomodoroStatus.RemainingTime);
            StorageService.SaveAppState(PomodoroStatus);
            PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus));
            LogState("StartPomodoro");
        }