startTimer method

void startTimer()

Implementation

void startTimer() {
  stopTimer();
  _elapsedTimeInSeconds = 0;  // Reset elapsed time when starting the timer

  timer = Timer.periodic(tickInSecond, (t) {
    if (isIncrementing) {
      remainingTimeInSeconds++;
      _elapsedTimeInSeconds++;  // Increment elapsed time
    } else {
      remainingTimeInSeconds--;
      _elapsedTimeInSeconds = endTimerInSeconds - remainingTimeInSeconds;  // Track elapsed time in decrement mode
    }
    notifyListeners();

    // Trigger controller's onTick callback
    controller?.onTick?.call(Duration(seconds: remainingTimeInSeconds));

    // Check if the timer completes
    if (_isTimeComplete()) {
      stopTimer();
      controller?.onComplete?.call();
    }
  });
}