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);
}
});
}