startTimer method

void startTimer({
  1. required Duration duration,
  2. VoidCallback? onFinish,
  3. VoidCallback? onPause,
  4. VoidCallback? onResume,
  5. VoidCallback? onReset,
  6. void onTick(
    1. Duration remaining
    )?,
  7. void onError(
    1. String error
    )?,
  8. Duration interval = const Duration(seconds: 1),
  9. bool autoStart = true,
})

Start a countdown timer

Implementation

void startTimer({
  required Duration duration,
  VoidCallback? onFinish,
  VoidCallback? onPause,
  VoidCallback? onResume,
  VoidCallback? onReset,
  void Function(Duration remaining)? onTick,
  void Function(String error)? onError,
  Duration interval = const Duration(seconds: 1),
  bool autoStart = true,
}) {
  _clearError();

  if (duration.isNegative || duration.isZero) {
    _setError('Duration must be positive');
    return;
  }

  stopTimer();

  _config = CountdownConfig(
    duration: duration,
    interval: interval,
    autoStart: autoStart,
    onFinish: onFinish,
    onPause: onPause,
    onResume: onResume,
    onReset: onReset,
    onTick: onTick,
  );

  _totalDuration = duration;
  _remaining = duration;
  _onFinishCallback = onFinish;
  _onPauseCallback = onPause;
  _onResumeCallback = onResume;
  _onResetCallback = onReset;
  _onTickCallback = onTick;
  _onErrorCallback = onError;
  _isFinished = false;
  _isVisible = true;

  if (autoStart) {
    _startTimerInternal();
  }

  notifyListeners();
}