StopWatchTimer constructor

StopWatchTimer({
  1. bool isLapHours = true,
  2. StopWatchMode mode = StopWatchMode.countUp,
  3. int presetMillisecond = 0,
  4. dynamic onChange(
    1. int
    )?,
  5. dynamic onChangeRawSecond(
    1. int
    )?,
  6. dynamic onChangeRawMinute(
    1. int
    )?,
  7. VoidCallback? onStop,
  8. VoidCallback? onEnded,
})

Implementation

StopWatchTimer({
  this.isLapHours = true,
  this.mode = StopWatchMode.countUp,
  int presetMillisecond = 0,
  this.onChange,
  this.onChangeRawSecond,
  this.onChangeRawMinute,
  this.onStop,
  this.onEnded,
}) {
  /// Set presetTime
  _presetTime = presetMillisecond;
  _initialPresetTime = presetMillisecond;

  _elapsedTime.listen((value) {
    _rawTimeController.add(value);
    if (onChange != null) {
      onChange!(value);
    }
    final latestSecond = getRawSecond(value);
    if (_second != latestSecond) {
      _secondTimeController.add(latestSecond);
      _second = latestSecond;
      if (onChangeRawSecond != null) {
        onChangeRawSecond!(latestSecond);
      }
    }
    final latestMinute = getRawMinute(value);
    if (_minute != latestMinute) {
      _minuteTimeController.add(latestMinute);
      _minute = latestMinute;
      if (onChangeRawMinute != null) {
        onChangeRawMinute!(latestMinute);
      }
    }
  });
  _executeController.listen((value) {
    switch (value) {
      case StopWatchExecute.start:
        _start();
        break;
      case StopWatchExecute.stop:
        _stop();
        break;
      case StopWatchExecute.reset:
        _reset();
        break;
      case StopWatchExecute.lap:
        _lap();
        break;
    }
  });

  if (mode == StopWatchMode.countDown) {
    _elapsedTime.add(_presetTime);
  }
}