public AddStagePage(TimeSet timeSet) { Title = "新增普通阶段"; BackgroundColor = Color.FromHex("#eee"); TimeSet = timeSet; ViewModel = new Stage(); BindingContext = ViewModel; InitView(); }
public AddFinalStagePage(TimeSet timeSet) { Title = "新增冲刺阶段"; BackgroundColor = Color.FromHex("#eee"); TimeSet = timeSet; ViewModel = new Stage() { VoiceInterval = 1 }; BindingContext = ViewModel; InitView(); }
public EditStagePage(TimeSet timeSet, Stage stage) { Title = "修改普通阶段"; BackgroundColor = Color.FromHex("#eee"); TimeSet = timeSet; ViewModel = stage; BindingContext = ViewModel; var ts = TimeSpan.FromSeconds(ViewModel.StagePoint); Hours = ts.Hours; Minutes = ts.Minutes; Seconds = ts.Seconds; InitView(); }
public StageChangedEventArgs(Stage currentStage) { CurrentStage = currentStage; }
void StartCountDown() { _current = stages.LastOrDefault(w => w.StagePoint >= currentSecond); if (StageChanged != null) StageChanged(TimeSet, new StageChangedEventArgs(_current)); if (_current != null) { _stageInterval = _current.VoiceInterval; var index = stages.IndexOf(_current); if (index != -1 && index + 1 < stages.Count) { _next = stages.ElementAt(index + 1); } } else { _next = stages[0]; } _stageTimer.Enabled = true; _stageTimer.Start(); _heartBeatTimer.Enabled = true; _heartBeatTimer.Start(); }
void StageCountDown(DateTime time) { lock (locker) { var second = currentSecond; if (controlStop || controlPause) { _stageTimer.Stop(); return; } if (_current != null) { var interval = _current.VoiceInterval; if (second == _current.StagePoint) { if (Speak != null) { var text = second.ToString(); var engin = TimeSet.VoiceEngine; Speak.Invoke(_current, new SpeakEventArgs(text, engin, second, interval)); } _stageCountDown = 0; } else { _stageCountDown++; if (_stageCountDown == _stageInterval) { if (Speak != null) { var text = second.ToString(); var engin = TimeSet.VoiceEngine; Speak.Invoke(_current, new SpeakEventArgs(text, engin, second, interval)); } _stageCountDown = 0; } } //else //{ // stageCountDown++; //} } if (CurrentSecondChanged != null) CurrentSecondChanged(this, new SecondChangedEvenArgs(second)); currentSecond--; if (currentSecond < 0) { controlStop = true; _stageTimer.Stop(); currentSecond = TimeSet.Duration; return; } if (_next != null) { if (currentSecond == _next.StagePoint) { _current = _next; if (StageChanged != null) { StageChanged(TimeSet, new StageChangedEventArgs(_current)); } _stageInterval = _current.VoiceInterval; _stageCountDown = 0; var index = stages.IndexOf(_current); if (index != -1 && index + 1 < stages.Count) { _next = stages.ElementAt(index + 1); } else { _next = null; } } } //_Position--; } }
public void Dispose() { _heartBeatTimer.Dispose(); _readyCountDownTimer.Dispose(); _stageTimer.Dispose(); _heartBeatTimer = null; _readyCountDownTimer = null; _stageTimer = null; _current = null; _next = null; }
public void RemoveStage(Stage stage) { //Stages().Remove(stage); ObservableStages.Remove(stage); }
//public List<Stage> Stages() //{ // if (!stageLoad) // { // //_Stage = StagesDataString.Deserialize<List<Stage>>(); // _ObservableStages = StagesDataString.Deserialize<ObservableCollection<Stage>>(); // stageLoad = true; // } // if (_ObservableStages == null) // { // _ObservableStages = new ObservableCollection<Stage>(); // } // return _ObservableStages; //} public void AddStage(Stage stage) { //Stages().Add(stage); if (stageLoad) _ObservableStages.Add(stage); else { ObservableStages.Add(stage); } _ObservableStages.Sort(Comparer<Stage>.Create((x, y) => y.StagePoint - x.StagePoint)); }