start method
void
start()
Implementation
void start() {
_timer?.cancel();
_timer = Timer.periodic(interval, (timer) {
if (_isPaused) return;
final newRemaining = remaining.value - interval;
if (newRemaining <= Duration.zero) {
remaining.value = Duration.zero;
timer.cancel();
onTick?.call(Duration.zero);
onFinish?.call();
} else {
remaining.value = newRemaining;
onTick?.call(newRemaining);
}
});
}