StopWatchTimer constructor
StopWatchTimer({
- bool isLapHours = true,
- StopWatchMode mode = StopWatchMode.countUp,
- int presetMillisecond = 0,
- dynamic onChange()?,
- dynamic onChangeRawSecond()?,
- dynamic onChangeRawMinute()?,
- VoidCallback? onStop,
- VoidCallback? onEnded,
Implementation
StopWatchTimer({
this.isLapHours = true,
this.mode = StopWatchMode.countUp,
int presetMillisecond = 0,
this.onChange,
this.onChangeRawSecond,
this.onChangeRawMinute,
this.onStop,
this.onEnded,
}) {
/// Set presetTime
_presetTime = presetMillisecond;
_initialPresetTime = presetMillisecond;
_elapsedTime.listen((value) {
_rawTimeController.add(value);
if (onChange != null) {
onChange!(value);
}
final latestSecond = getRawSecond(value);
if (_second != latestSecond) {
_secondTimeController.add(latestSecond);
_second = latestSecond;
if (onChangeRawSecond != null) {
onChangeRawSecond!(latestSecond);
}
}
final latestMinute = getRawMinute(value);
if (_minute != latestMinute) {
_minuteTimeController.add(latestMinute);
_minute = latestMinute;
if (onChangeRawMinute != null) {
onChangeRawMinute!(latestMinute);
}
}
});
_executeController.listen((value) {
switch (value) {
case StopWatchExecute.start:
_start();
break;
case StopWatchExecute.stop:
_stop();
break;
case StopWatchExecute.reset:
_reset();
break;
case StopWatchExecute.lap:
_lap();
break;
}
});
if (mode == StopWatchMode.countDown) {
_elapsedTime.add(_presetTime);
}
}