LCOV - code coverage report
Current view: top level - _classes/controller - delayed_call.dart Coverage Total Hit
Test: lcov.info Lines: 100.0 % 12 12
Test Date: 2026-11-14 15:03:01 Functions: - 0 0

            Line data    Source code
       1              : // Copyright 2023 The terCAD team. All rights reserved.
       2              : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
       3              : 
       4              : import 'dart:async';
       5              : import 'package:material_ui/material_ui.dart';
       6              : 
       7              : class DelayedCall {
       8              :   final int delay;
       9              :   Timer? _timer;
      10              :   VoidCallback? _action;
      11              :   bool preserveFirst;
      12              : 
      13            2 :   DelayedCall(this.delay, {this.preserveFirst = false});
      14              : 
      15            2 :   void run(VoidCallback action) {
      16            4 :     _timer?.cancel();
      17            2 :     if (!preserveFirst || _action == null) {
      18            2 :       _action = action;
      19              :     }
      20           10 :     _timer = Timer(Duration(milliseconds: delay), () {
      21            2 :       final v = _action;
      22            2 :       _action = null;
      23            2 :       v?.call();
      24              :     });
      25              :   }
      26              : 
      27            1 :   void cancel() {
      28            2 :     _action?.call();
      29            2 :     _timer?.cancel();
      30              :   }
      31              : }
        

Generated by: LCOV version 2.0-1