start method

void start()

Implementation

void start() {
  _timer?.cancel();
  _timer = Timer.periodic(interval, (timer) {
    if (_isPaused) return;

    final newRemaining = remaining.value - interval;
    if (newRemaining.isNegative) {
      remaining.value = Duration.zero;
      timer.cancel();
      onFinish?.call();
    } else {
      remaining.value = newRemaining;
      onTick?.call(newRemaining);
    }
  });
}