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) {
_second = getRawSecond(presetMillisecond);
_minute = getRawMinute(presetMillisecond);
}
_rawTimeController = BehaviorSubject<int>.seeded(presetMillisecond);
_secondTimeController =
BehaviorSubject<int>.seeded(getRawSecond(presetMillisecond));
_minuteTimeController =
BehaviorSubject<int>.seeded(getRawMinute(presetMillisecond));
_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);
}
});
}