pause method
void
pause()
Pauses the debouncer, cancelling active timers.
Any pending action will be resumed when resume is called.
Implementation
void pause() {
_ensureNotDisposed();
if (_isPaused) {
_logDebug('Already paused, ignoring pause call');
return;
}
_isPaused = true;
// Capture remaining time for main timer.
if (_timer != null && _lastCallTime != null) {
final elapsed = DateTime.now().difference(_lastCallTime!);
final remaining = _delay - elapsed;
_remainingDelayOnPause = remaining.isNegative ? Duration.zero : remaining;
_timer?.cancel();
_timer = null;
}
// Capture remaining time for maxWait timer.
if (_maxWaitTimer != null && _firstCallTime != null && _maxWait != null) {
final elapsed = DateTime.now().difference(_firstCallTime!);
final remaining = _maxWait - elapsed;
_remainingMaxWaitOnPause =
remaining.isNegative ? Duration.zero : remaining;
_maxWaitTimer?.cancel();
_maxWaitTimer = null;
}
_logDebug('Debouncer paused.');
_publishState();
}