StopWatchTimer constructor
StopWatchTimer({})
Implementation
StopWatchTimer({
this.isLapHours = true,
this.mode = StopWatchMode.countUp,
int presetMillisecond = 0,
this.refreshTime = 1,
this.onChange,
this.onChangeRawSecond,
this.onChangeRawMinute,
this.onStopped,
this.onEnded,
}) {
/// Set presetTime
_presetTime = presetMillisecond;
_initialPresetTime = presetMillisecond;
if (mode == StopWatchMode.countDown) {
final value = presetMillisecond;
_rawTimeController = BehaviorSubject<int>.seeded(value);
_secondTimeController = BehaviorSubject<int>.seeded(getRawSecond(value));
_minuteTimeController = BehaviorSubject<int>.seeded(getRawMinute(value));
} else {
_rawTimeController = BehaviorSubject<int>.seeded(0);
_secondTimeController = BehaviorSubject<int>.seeded(0);
_minuteTimeController = BehaviorSubject<int>.seeded(0);
}
_elapsedTime.listen((value) {
_rawTimeController.add(value);
onChange?.call(value);
final latestSecond = getRawSecond(value);
if (_second != latestSecond) {
_secondTimeController.add(latestSecond);
_second = latestSecond;
onChangeRawSecond?.call(latestSecond);
}
final latestMinute = getRawMinute(value);
if (_minute != latestMinute) {
_minuteTimeController.add(latestMinute);
_minute = latestMinute;
onChangeRawMinute?.call(latestMinute);
}
});
}