LCOV - code coverage report
Current view: top level - src/services/editor/finder - finder_service.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 17 22 77.3 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:async';
       2             : 
       3             : import 'package:flutter/material.dart';
       4             : import 'package:pal/src/ui/shared/utilities/element_finder.dart';
       5             : 
       6             : import '../../../pal_navigator_observer.dart';
       7             : 
       8             : class FinderService {
       9             : 
      10             :   PalNavigatorObserver observer;
      11             : 
      12           6 :   FinderService({@required this.observer});
      13             : 
      14           2 :   Future<ElementModel> searchChildElement(String key) async {
      15           2 :     var completer = new Completer<ElementModel>();
      16           8 :     var currentRoute = await observer.route.first;
      17           4 :     if(WidgetsBinding.instance.hasScheduledFrame) {
      18           0 :       WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      19           0 :         ElementModel res = ElementFinder(currentRoute.subtreeContext).searchChildElement(key);
      20           0 :         completer.complete(res);
      21             :       });
      22             :     } else {
      23           6 :       ElementModel res = ElementFinder(currentRoute.subtreeContext).searchChildElement(key);
      24           2 :       completer.complete(res);
      25             :     }
      26           2 :     return completer.future;
      27             :   }
      28             : 
      29           2 :   Future<Map<String, ElementModel>> scan({Key omitChildsOf, bool debugMode = false}) async {
      30           2 :     var completer = new Completer<Map<String, ElementModel>>();
      31           8 :     var currentRoute = await observer.route.first;
      32           4 :     if(WidgetsBinding.instance.hasScheduledFrame) {
      33           0 :       WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      34           0 :         completer.complete(ElementFinder(currentRoute.subtreeContext).scan());
      35             :       });
      36             :     } else {
      37           8 :       completer.complete(ElementFinder(currentRoute.subtreeContext).scan());
      38             :     }
      39           2 :     return completer.future;
      40             :   }
      41             : 
      42           1 :   Future<Rect> getLargestAvailableSpace(ElementModel element) async {
      43           4 :     var currentRoute = await observer.route.first;
      44           3 :     return ElementFinder(currentRoute.subtreeContext).getLargestAvailableSpace(element);
      45             :   }
      46             : 
      47             : }

Generated by: LCOV version 1.14