Exemple #1
0
        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);
        }
Exemple #2
0
 public void SetTimerInfo(PomdoroStatus timerInfo)
 {
     if (IsNotificationEnable)
     {
         NotificationService.SetTimerInfo(timerInfo);
     }
 }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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();
            }
        }
Exemple #10
0
 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());
 }
Exemple #12
0
 Task <bool> IStorageService.SaveAppState(PomdoroStatus appState)
 {
     throw new NotImplementedException();
 }
Exemple #13
0
 public void SaveAppState(PomdoroStatus appState)
 {
     throw new NotImplementedException();
 }
 public PomodoroTimerStatusChangedEventArgs(PomdoroStatus pomodoroStatus)
 {
     this.NewStatus = pomodoroStatus;
 }