public void LoadState(PomodoroTimerState state) { if (state == null) { return; } TimerInfo = new PomodoroTimerState() { PomodoroState = state.PomodoroState, RunTime = state.RunTime, TimerState = state.TimerState, StartTime = state.StartTime, RemainingRunTime = state.RemainingRunTime, }; UpdateChart(RemainingTimeValue, TimeSpan.Zero, TimerInfo.RunTime); if (IsTimerRunning) { StartTimerTick(); } else { StopTimerTick(); } }
private bool IsPomodoroStatusValid(PomodoroTimerState lastState) { bool state = true; // check if null if (lastState == null) { state = false; } if (lastState.TimerState == TimerState.Running) { if (lastState.StartTime > DateTime.Now) { state = false; } if (lastState.RunTime == TimeSpan.Zero) { state = false; } if (lastState.RemainingTime <= TimeSpan.Zero) { state = false; } if (lastState.PomodoroState == PomodoroState.Ready) { state = false; } } LogState("IsPomodoroStatusValid state== " + state, lastState); return(state); }
public void SetNotification(PomodoroTimerState timerInfo) { if (IsNotificationEnable) { NotificationService.SetTimerInfo(timerInfo); } }
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"); }
private void OnTimerFinished(object sender, PomodoroChangedEventArgs args) { StopTimerTick(); Device.BeginInvokeOnMainThread(() => { TimerInfo = new PomodoroTimerState(); Tick = 0; }); }
public async void StopPomodoro() { TimerService.Stop(); PomodoroStatus = PomodoroTimerState.Stopped(); await StorageService.SaveAppState(PomodoroStatus); PomodoroTimerStateChangedEvent?.Invoke(this, new PomodoroTimerStateChangedEventArgs(PomodoroStatus)); LogState("StopPomodoro"); }
// Private methods private void Timer_Elapsed(object sender, ElapsedEventArgs e) { Seconds--; if (Seconds == 0) { // POMODORO COMPLETE Console.WriteLine("Pomodoro complete!"); timer.Enabled = false; NumPomodoros++; State = PomodoroTimerState.Elapsed; } }
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"); }
// Constructor public PomodoroTimer() { // Initialize members timer = new Timer(); timer.Interval = 1000; timer.AutoReset = true; timer.Elapsed += Timer_Elapsed; Seconds = DEFAULT_VALUE_SECONDS; NumPomodoros = 0; State = PomodoroTimerState.Stopped; }
public void LoadLastState() { var lastState = StorageService.GetLastState(); // check if last state is valid if (lastState != null && IsPomodoroStatusValid(lastState)) { PomodoroStatus = lastState; } else { PomodoroStatus = new PomodoroTimerState(); } LogState("Loaded"); }
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"); }
private void LogState(string message = null, PomodoroTimerState state = null) { #if DEBUG state = state ?? PomodoroStatus; message = message ?? message + '\t'; if (state != null) { string pStateString = message + state.PomodoroState.ToString() + '\t' + state.TimerState.ToString() + '\t' + state.StartTime.ToString() + '\t' + state.RunTime.TotalSeconds.ToString() + '\t' + state.RemainingRunTime.TotalSeconds.ToString() + '\t' + state.RemainingTime.TotalSeconds.ToString() + '\t' ; Logger.Log(LogLevelEnum.INFO, pStateString); } #endif }
public void SetTimerInfo(PomodoroTimerState timerInfo) { CrossLocalNotifications.Current.Show(GetStateName(timerInfo.PomodoroState), TimeSpanFormatter(timerInfo.RemainingTime), 1); }
public Task <bool> SaveAppState(PomodoroTimerState appState) { return(Task.FromResult(true)); }
// Public methods public void Start() { timer.Enabled = true; State = PomodoroTimerState.Running; }
public void Reset() { timer.Enabled = false; State = PomodoroTimerState.Stopped; Seconds = DEFAULT_VALUE_SECONDS; }
public Task <bool> SaveAppState(PomodoroTimerState appState) { StorageModel.AppState = appState; return(SaveAsync()); }
public PomodoroTimerStateChangedEventArgs(PomodoroTimerState pomodoroStatus) { this.NewState = pomodoroStatus; }