change interval time type from int to Duration in debouncer
This commit is contained in:
parent
8e8ac25a66
commit
6a26e01af0
|
@ -38,7 +38,7 @@ class _AllSectionsExamplesProviderState
|
|||
|
||||
final _debouncer = Debouncer(
|
||||
const Duration(seconds: 4),
|
||||
executionIntervalInMilliSeconds: 15000,
|
||||
executionInterval: const Duration(seconds: 15),
|
||||
);
|
||||
|
||||
@override
|
||||
|
|
|
@ -42,7 +42,7 @@ class _MapViewState extends State<MapView> {
|
|||
late List<Marker> _markers;
|
||||
final _debouncer = Debouncer(
|
||||
const Duration(milliseconds: 300),
|
||||
executionIntervalInMilliSeconds: 750,
|
||||
executionInterval: const Duration(milliseconds: 750),
|
||||
);
|
||||
|
||||
@override
|
||||
|
|
|
@ -12,19 +12,19 @@ class Debouncer {
|
|||
/// If executionIntervalInSeconds is not null, then the debouncer will execute the
|
||||
/// current callback it has in run() method repeatedly in the given interval.
|
||||
/// This is useful for example when you want to execute a callback every 5 seconds
|
||||
final int? executionIntervalInMilliSeconds;
|
||||
final Duration? executionInterval;
|
||||
Timer? _debounceTimer;
|
||||
|
||||
Debouncer(this._duration, {this.executionIntervalInMilliSeconds});
|
||||
Debouncer(this._duration, {this.executionInterval});
|
||||
|
||||
final Stopwatch _stopwatch = Stopwatch();
|
||||
|
||||
void run(FutureVoidCallback fn) {
|
||||
bool shouldRunImmediately = false;
|
||||
if (executionIntervalInMilliSeconds != null) {
|
||||
if (executionInterval != null) {
|
||||
// ensure the stop watch is running
|
||||
_stopwatch.start();
|
||||
if (_stopwatch.elapsedMilliseconds > executionIntervalInMilliSeconds!) {
|
||||
if (_stopwatch.elapsedMilliseconds > executionInterval!.inMilliseconds) {
|
||||
shouldRunImmediately = true;
|
||||
_stopwatch.stop();
|
||||
_stopwatch.reset();
|
||||
|
|
Loading…
Reference in a new issue