LCOV - code coverage report
Current view: top level - lib/domain/entities/mobility - trip.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 21 0.0 %
Date: 2020-06-26 11:36:11 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:ui' show Offset;
       2             : 
       3             : import 'package:app_pym/core/constants/mobility.dart';
       4             : import 'package:app_pym/domain/entities/mobility/calendar.dart';
       5             : import 'package:app_pym/domain/entities/mobility/stop_time.dart';
       6             : import 'package:freezed_annotation/freezed_annotation.dart';
       7             : import 'package:google_maps_flutter/google_maps_flutter.dart'
       8             :     show BitmapDescriptor, InfoWindow, LatLng, Marker, MarkerId;
       9             : 
      10             : part 'trip.freezed.dart';
      11             : 
      12             : class LatLngNamed extends LatLng {
      13             :   final String name;
      14             : 
      15           0 :   const LatLngNamed(double latitude, double longitude, {@required this.name})
      16           0 :       : super(latitude, longitude);
      17             : 
      18           0 :   Marker toMarker({
      19             :     @required BitmapDescriptor icon,
      20             :     @required InfoWindow infoWindow,
      21             :   }) {
      22           0 :     return Marker(
      23           0 :       markerId: MarkerId(this.name),
      24             :       anchor: const Offset(0.5, 0.5),
      25             :       position: this,
      26             :       visible: true,
      27             :       icon: icon,
      28             :       infoWindow: infoWindow,
      29             :     );
      30             :   }
      31             : }
      32             : 
      33             : @freezed
      34             : abstract class Trip with _$Trip {
      35             :   const factory Trip({
      36             :     String service_id,
      37             :     String route_id,
      38             :     String trip_id,
      39             :     String trip_headsign,
      40             :     Sens direction_id,
      41             :     Calendar calendar,
      42             :     List<StopTime> stop_time,
      43             :   }) = _Trip;
      44             : }
      45             : 
      46             : extension TripX on Trip {
      47           0 :   Stream<LatLngNamed> toPoints(
      48             :     Direction direction, {
      49             :     @required String polylineId,
      50             :   }) async* {
      51             :     // Si c'est Aller, on va du début jusqu'à la destination,
      52             :     // sinon on ajoute qu'à partir de la destination.
      53           0 :     bool ajouteBus = direction == Direction.Aller;
      54           0 :     bool ajouteTrain = direction == Direction.Aller;
      55           0 :     for (final StopTime stopTime in this.stop_time) {
      56           0 :       final LatLngNamed position = LatLngNamed(
      57           0 :         double.parse(stopTime.stop.stop_lat),
      58           0 :         double.parse(stopTime.stop.stop_long),
      59           0 :         name: stopTime.stop.stop_name,
      60             :       );
      61             : 
      62           0 :       if (polylineId.startsWith("bus")) {
      63           0 :         if (stopTime.stop.stop_name == MobilityConstants.pymStop) {
      64             :           ajouteBus = !ajouteBus;
      65           0 :           yield position;
      66             :         } else if (ajouteBus) {
      67           0 :           yield position;
      68             :         }
      69             :       }
      70           0 :       if (polylineId.startsWith("train")) {
      71           0 :         if (stopTime.stop.stop_name == MobilityConstants.gareGardanne) {
      72             :           ajouteTrain = !ajouteTrain;
      73           0 :           yield position;
      74             :         } else if (ajouteTrain) {
      75           0 :           yield position;
      76             :         }
      77             :       }
      78             :     }
      79             :   }
      80             : }

Generated by: LCOV version 1.13