public void StartPomodoro() { if (PomodoroStatus.PomodoroState == PomodoroState.Pomodoro && PomodoroStatus.TimerState == TimerState.Paused) // if paused { TimerService.Continue(); PomodoroStatus = new PomdoroStatus() { PomodoroState = PomodoroState.Pomodoro, RemainingTime = TimerService.RemainingTime, RunTime = PomodoroSettings.PomodoroDuration, StartTime = TimerService.StartTime, TimerState = TimerState.Running, }; } else { TimerService.Start(PomodoroSettings.PomodoroDuration); PomodoroStatus = new PomdoroStatus() { PomodoroState = PomodoroState.Pomodoro, RemainingTime = PomodoroSettings.PomodoroDuration, RunTime = PomodoroSettings.PomodoroDuration, StartTime = TimerService.StartTime, TimerState = TimerState.Running, }; } StorageService.SaveAppState(PomodoroStatus); }
public void SetTimerInfo(PomdoroStatus timerInfo) { if (IsNotificationEnable) { NotificationService.SetTimerInfo(timerInfo); } }
public PomodoroControlService(IStorageService storageService) { FinishedWitoutSessionBreak = 0; TimerService = new TimerService(); StorageService = storageService; TimerService.TimerComplatedEvent += OnTimerCompleted; var lastState = StorageService.GetLastState(); // check if last state is valid if (IsPomodoroStatusValid(lastState)) { PomodoroStatus = lastState; } else { PomodoroStatus = new PomdoroStatus { PomodoroState = PomodoroState.Ready, TimerState = TimerState.Stoped, }; } if (PomodoroStatus != null) { TimerService.StartTime = PomodoroStatus.StartTime; TimerService.RunningTime = PomodoroStatus.RunTime; TimerService.RemainingTime = PomodoroStatus.RemainingTime; TimerService.TimerState = PomodoroStatus.TimerState; } }
private bool IsPomodoroStatusValid(PomdoroStatus lastState) { // check if null if (lastState == null) { return(false); } if (lastState.TimerState == TimerState.Running) { // check if timer expired if (lastState.RunTime == null || lastState.RemainingTime == null || lastState.StartTime == null || lastState.RunTime == TimeSpan.Zero) { return(false); } if (DateTime.Now.Subtract(lastState.StartTime) > lastState.RemainingTime) { return(false); } // check if timer run incorrect pomodoro state if (lastState.PomodoroState == PomodoroState.Ready) { return(false); } } return(true); }
private void WaitForStart() { PomodoroStatus = new PomdoroStatus() { PomodoroState = PomodoroState.Pomodoro, TimerState = TimerState.Stoped, RunTime = PomodoroSettings.PomodoroDuration, RemainingTime = PomodoroSettings.PomodoroDuration, StartTime = DateTime.Now }; StorageService.SaveAppState(PomodoroStatus); PomodoroTimerStatusChangedEvent?.Invoke(this, new PomodoroTimerStatusChangedEventArgs(PomodoroStatus)); }
public void PausePomodoro() { TimerService.Pause(); PomodoroStatus.TimerState = TimerState.Paused; PomodoroStatus = new PomdoroStatus() { PomodoroState = PomodoroState.Pomodoro, RemainingTime = TimerService.RemainingTime, RunTime = PomodoroSettings.PomodoroDuration, StartTime = DateTime.Now, TimerState = TimerState.Paused, }; StorageService.SaveAppState(PomodoroStatus); }
public void StopPomodoro() { TimerService.Stop(); PomodoroStatus = new PomdoroStatus() { RemainingTime = TimeSpan.Zero, RunTime = TimeSpan.Zero, StartTime = DateTime.Now, PomodoroState = PomodoroState.Ready, TimerState = TimerState.Stoped, }; StorageService.SaveAppState(PomodoroStatus); PomodoroTimerStatusChangedEvent?.Invoke(this, new PomodoroTimerStatusChangedEventArgs(PomodoroStatus)); }
public void StartSessionBreak() { FinishedWitoutSessionBreak = 0; TimerService.Start(PomodoroSettings.SessionBreakDuration); PomodoroStatus = new PomdoroStatus() { PomodoroState = PomodoroState.SessionBreak, RunTime = PomodoroSettings.SessionBreakDuration, RemainingTime = PomodoroSettings.SessionBreakDuration, StartTime = DateTime.Now, TimerState = TimerState.Running, }; StorageService.SaveAppState(PomodoroStatus); PomodoroTimerStatusChangedEvent?.Invoke(this, new PomodoroTimerStatusChangedEventArgs(PomodoroStatus)); }
public void LoadState(PomdoroStatus state) { if (state == null) { return; } TimerInfo = new PomdoroStatus() { PomodoroState = state.PomodoroState, RunTime = state.RunTime, TimerState = state.TimerState, StartTime = state.StartTime, RemainingTime = state.RemainingTime.Subtract(DateTime.Now.Subtract(state.StartTime)) }; OnPropertyChanged("TimerInfo"); if (TimerInfo.TimerState == TimerState.Running) { StartTimerTick(); } }
public void SetTimerInfo(PomdoroStatus timerInfo) { CrossLocalNotifications.Current.Show(GetStateName(timerInfo.PomodoroState), TimeSpanFormatter(timerInfo.RemainingTime), 1); }
public Task <bool> SaveAppState(PomdoroStatus appState) { StorageModel.AppState = appState; return(SaveAsync()); }
Task <bool> IStorageService.SaveAppState(PomdoroStatus appState) { throw new NotImplementedException(); }
public void SaveAppState(PomdoroStatus appState) { throw new NotImplementedException(); }
public PomodoroTimerStatusChangedEventArgs(PomdoroStatus pomodoroStatus) { this.NewStatus = pomodoroStatus; }