diff --git a/android/src/main/kotlin/com/google/maps/flutter/navigation/Convert.kt b/android/src/main/kotlin/com/google/maps/flutter/navigation/Convert.kt index 2af77033..771d1602 100644 --- a/android/src/main/kotlin/com/google/maps/flutter/navigation/Convert.kt +++ b/android/src/main/kotlin/com/google/maps/flutter/navigation/Convert.kt @@ -380,6 +380,23 @@ object Convert { ) } + /** + * Converts Google Navigation [TimeAndDistance] delay severity to pigeon + * [TrafficDelaySeverityDto]. + * + * @param delaySeverity Google Navigation TimeAndDistance delay severity [Int]. + * @return pigeon [TrafficDelaySeverityDto]. + */ + fun convertDelaySeverityToDto(delaySeverity: Int): TrafficDelaySeverityDto { + return when (delaySeverity) { + TimeAndDistance.DELAY_LIGHT -> TrafficDelaySeverityDto.LIGHT + TimeAndDistance.DELAY_MEDIUM -> TrafficDelaySeverityDto.MEDIUM + TimeAndDistance.DELAY_HEAVY -> TrafficDelaySeverityDto.HEAVY + TimeAndDistance.DELAY_NODATA -> TrafficDelaySeverityDto.NO_DATA + else -> TrafficDelaySeverityDto.NO_DATA + } + } + /** * Converts Google Navigation [TimeAndDistance] to pigeon [NavigationTimeAndDistanceDto]. * @@ -390,6 +407,7 @@ object Convert { return NavigationTimeAndDistanceDto( timeAndDistance.seconds.toDouble(), timeAndDistance.meters.toDouble(), + convertDelaySeverityToDto(timeAndDistance.delaySeverity), ) } diff --git a/android/src/main/kotlin/com/google/maps/flutter/navigation/GoogleMapsNavigationSessionManager.kt b/android/src/main/kotlin/com/google/maps/flutter/navigation/GoogleMapsNavigationSessionManager.kt index b4f9eddc..90706029 100644 --- a/android/src/main/kotlin/com/google/maps/flutter/navigation/GoogleMapsNavigationSessionManager.kt +++ b/android/src/main/kotlin/com/google/maps/flutter/navigation/GoogleMapsNavigationSessionManager.kt @@ -352,6 +352,7 @@ constructor( navigationSessionEventApi.onRemainingTimeOrDistanceChanged( timeAndDistance.seconds.toDouble(), timeAndDistance.meters.toDouble(), + Convert.convertDelaySeverityToDto(timeAndDistance.delaySeverity), ) {} } } diff --git a/android/src/main/kotlin/com/google/maps/flutter/navigation/messages.g.kt b/android/src/main/kotlin/com/google/maps/flutter/navigation/messages.g.kt index f732b780..74016f59 100644 --- a/android/src/main/kotlin/com/google/maps/flutter/navigation/messages.g.kt +++ b/android/src/main/kotlin/com/google/maps/flutter/navigation/messages.g.kt @@ -307,6 +307,19 @@ enum class RouteStatusDto(val raw: Int) { } } +enum class TrafficDelaySeverityDto(val raw: Int) { + LIGHT(0), + MEDIUM(1), + HEAVY(2), + NO_DATA(3); + + companion object { + fun ofRaw(raw: Int): TrafficDelaySeverityDto? { + return values().firstOrNull { it.raw == raw } + } + } +} + enum class AudioGuidanceTypeDto(val raw: Int) { SILENT(0), ALERTS_ONLY(1), @@ -1633,17 +1646,22 @@ data class NavigationWaypointDto( } /** Generated class from Pigeon that represents data sent in messages. */ -data class NavigationTimeAndDistanceDto(val time: Double, val distance: Double) { +data class NavigationTimeAndDistanceDto( + val time: Double, + val distance: Double, + val delaySeverity: TrafficDelaySeverityDto, +) { companion object { fun fromList(pigeonVar_list: List): NavigationTimeAndDistanceDto { val time = pigeonVar_list[0] as Double val distance = pigeonVar_list[1] as Double - return NavigationTimeAndDistanceDto(time, distance) + val delaySeverity = pigeonVar_list[2] as TrafficDelaySeverityDto + return NavigationTimeAndDistanceDto(time, distance, delaySeverity) } } fun toList(): List { - return listOf(time, distance) + return listOf(time, distance, delaySeverity) } override fun equals(other: Any?): Boolean { @@ -2313,165 +2331,168 @@ private open class messagesPigeonCodec : StandardMessageCodec() { return (readValue(buffer) as Long?)?.let { RouteStatusDto.ofRaw(it.toInt()) } } 144.toByte() -> { - return (readValue(buffer) as Long?)?.let { AudioGuidanceTypeDto.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { TrafficDelaySeverityDto.ofRaw(it.toInt()) } } 145.toByte() -> { - return (readValue(buffer) as Long?)?.let { SpeedAlertSeverityDto.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { AudioGuidanceTypeDto.ofRaw(it.toInt()) } } 146.toByte() -> { + return (readValue(buffer) as Long?)?.let { SpeedAlertSeverityDto.ofRaw(it.toInt()) } + } + 147.toByte() -> { return (readValue(buffer) as Long?)?.let { RouteSegmentTrafficDataStatusDto.ofRaw(it.toInt()) } } - 147.toByte() -> { + 148.toByte() -> { return (readValue(buffer) as Long?)?.let { RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto.ofRaw(it.toInt()) } } - 148.toByte() -> { + 149.toByte() -> { return (readValue(buffer) as Long?)?.let { ManeuverDto.ofRaw(it.toInt()) } } - 149.toByte() -> { + 150.toByte() -> { return (readValue(buffer) as Long?)?.let { DrivingSideDto.ofRaw(it.toInt()) } } - 150.toByte() -> { + 151.toByte() -> { return (readValue(buffer) as Long?)?.let { NavStateDto.ofRaw(it.toInt()) } } - 151.toByte() -> { + 152.toByte() -> { return (readValue(buffer) as Long?)?.let { LaneShapeDto.ofRaw(it.toInt()) } } - 152.toByte() -> { + 153.toByte() -> { return (readValue(buffer) as Long?)?.let { TaskRemovedBehaviorDto.ofRaw(it.toInt()) } } - 153.toByte() -> { + 154.toByte() -> { return (readValue(buffer) as? List)?.let { MapOptionsDto.fromList(it) } } - 154.toByte() -> { + 155.toByte() -> { return (readValue(buffer) as? List)?.let { NavigationViewOptionsDto.fromList(it) } } - 155.toByte() -> { + 156.toByte() -> { return (readValue(buffer) as? List)?.let { ViewCreationOptionsDto.fromList(it) } } - 156.toByte() -> { + 157.toByte() -> { return (readValue(buffer) as? List)?.let { CameraPositionDto.fromList(it) } } - 157.toByte() -> { + 158.toByte() -> { return (readValue(buffer) as? List)?.let { MarkerDto.fromList(it) } } - 158.toByte() -> { + 159.toByte() -> { return (readValue(buffer) as? List)?.let { MarkerOptionsDto.fromList(it) } } - 159.toByte() -> { + 160.toByte() -> { return (readValue(buffer) as? List)?.let { ImageDescriptorDto.fromList(it) } } - 160.toByte() -> { + 161.toByte() -> { return (readValue(buffer) as? List)?.let { InfoWindowDto.fromList(it) } } - 161.toByte() -> { + 162.toByte() -> { return (readValue(buffer) as? List)?.let { MarkerAnchorDto.fromList(it) } } - 162.toByte() -> { + 163.toByte() -> { return (readValue(buffer) as? List)?.let { PolygonDto.fromList(it) } } - 163.toByte() -> { + 164.toByte() -> { return (readValue(buffer) as? List)?.let { PolygonOptionsDto.fromList(it) } } - 164.toByte() -> { + 165.toByte() -> { return (readValue(buffer) as? List)?.let { PolygonHoleDto.fromList(it) } } - 165.toByte() -> { + 166.toByte() -> { return (readValue(buffer) as? List)?.let { StyleSpanStrokeStyleDto.fromList(it) } } - 166.toByte() -> { + 167.toByte() -> { return (readValue(buffer) as? List)?.let { StyleSpanDto.fromList(it) } } - 167.toByte() -> { + 168.toByte() -> { return (readValue(buffer) as? List)?.let { PolylineDto.fromList(it) } } - 168.toByte() -> { + 169.toByte() -> { return (readValue(buffer) as? List)?.let { PatternItemDto.fromList(it) } } - 169.toByte() -> { + 170.toByte() -> { return (readValue(buffer) as? List)?.let { PolylineOptionsDto.fromList(it) } } - 170.toByte() -> { + 171.toByte() -> { return (readValue(buffer) as? List)?.let { CircleDto.fromList(it) } } - 171.toByte() -> { + 172.toByte() -> { return (readValue(buffer) as? List)?.let { CircleOptionsDto.fromList(it) } } - 172.toByte() -> { + 173.toByte() -> { return (readValue(buffer) as? List)?.let { MapPaddingDto.fromList(it) } } - 173.toByte() -> { + 174.toByte() -> { return (readValue(buffer) as? List)?.let { RouteTokenOptionsDto.fromList(it) } } - 174.toByte() -> { + 175.toByte() -> { return (readValue(buffer) as? List)?.let { DestinationsDto.fromList(it) } } - 175.toByte() -> { + 176.toByte() -> { return (readValue(buffer) as? List)?.let { RoutingOptionsDto.fromList(it) } } - 176.toByte() -> { + 177.toByte() -> { return (readValue(buffer) as? List)?.let { NavigationDisplayOptionsDto.fromList(it) } } - 177.toByte() -> { + 178.toByte() -> { return (readValue(buffer) as? List)?.let { NavigationWaypointDto.fromList(it) } } - 178.toByte() -> { + 179.toByte() -> { return (readValue(buffer) as? List)?.let { NavigationTimeAndDistanceDto.fromList(it) } } - 179.toByte() -> { + 180.toByte() -> { return (readValue(buffer) as? List)?.let { NavigationAudioGuidanceSettingsDto.fromList(it) } } - 180.toByte() -> { + 181.toByte() -> { return (readValue(buffer) as? List)?.let { SimulationOptionsDto.fromList(it) } } - 181.toByte() -> { + 182.toByte() -> { return (readValue(buffer) as? List)?.let { LatLngDto.fromList(it) } } - 182.toByte() -> { + 183.toByte() -> { return (readValue(buffer) as? List)?.let { LatLngBoundsDto.fromList(it) } } - 183.toByte() -> { + 184.toByte() -> { return (readValue(buffer) as? List)?.let { SpeedingUpdatedEventDto.fromList(it) } } - 184.toByte() -> { + 185.toByte() -> { return (readValue(buffer) as? List)?.let { GpsAvailabilityChangeEventDto.fromList(it) } } - 185.toByte() -> { + 186.toByte() -> { return (readValue(buffer) as? List)?.let { SpeedAlertOptionsThresholdPercentageDto.fromList(it) } } - 186.toByte() -> { + 187.toByte() -> { return (readValue(buffer) as? List)?.let { SpeedAlertOptionsDto.fromList(it) } } - 187.toByte() -> { + 188.toByte() -> { return (readValue(buffer) as? List)?.let { RouteSegmentTrafficDataRoadStretchRenderingDataDto.fromList(it) } } - 188.toByte() -> { + 189.toByte() -> { return (readValue(buffer) as? List)?.let { RouteSegmentTrafficDataDto.fromList(it) } } - 189.toByte() -> { + 190.toByte() -> { return (readValue(buffer) as? List)?.let { RouteSegmentDto.fromList(it) } } - 190.toByte() -> { + 191.toByte() -> { return (readValue(buffer) as? List)?.let { LaneDirectionDto.fromList(it) } } - 191.toByte() -> { + 192.toByte() -> { return (readValue(buffer) as? List)?.let { LaneDto.fromList(it) } } - 192.toByte() -> { + 193.toByte() -> { return (readValue(buffer) as? List)?.let { StepInfoDto.fromList(it) } } - 193.toByte() -> { + 194.toByte() -> { return (readValue(buffer) as? List)?.let { NavInfoDto.fromList(it) } } else -> super.readValueOfType(type, buffer) @@ -2540,204 +2561,208 @@ private open class messagesPigeonCodec : StandardMessageCodec() { stream.write(143) writeValue(stream, value.raw) } - is AudioGuidanceTypeDto -> { + is TrafficDelaySeverityDto -> { stream.write(144) writeValue(stream, value.raw) } - is SpeedAlertSeverityDto -> { + is AudioGuidanceTypeDto -> { stream.write(145) writeValue(stream, value.raw) } - is RouteSegmentTrafficDataStatusDto -> { + is SpeedAlertSeverityDto -> { stream.write(146) writeValue(stream, value.raw) } - is RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto -> { + is RouteSegmentTrafficDataStatusDto -> { stream.write(147) writeValue(stream, value.raw) } - is ManeuverDto -> { + is RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto -> { stream.write(148) writeValue(stream, value.raw) } - is DrivingSideDto -> { + is ManeuverDto -> { stream.write(149) writeValue(stream, value.raw) } - is NavStateDto -> { + is DrivingSideDto -> { stream.write(150) writeValue(stream, value.raw) } - is LaneShapeDto -> { + is NavStateDto -> { stream.write(151) writeValue(stream, value.raw) } - is TaskRemovedBehaviorDto -> { + is LaneShapeDto -> { stream.write(152) writeValue(stream, value.raw) } - is MapOptionsDto -> { + is TaskRemovedBehaviorDto -> { stream.write(153) + writeValue(stream, value.raw) + } + is MapOptionsDto -> { + stream.write(154) writeValue(stream, value.toList()) } is NavigationViewOptionsDto -> { - stream.write(154) + stream.write(155) writeValue(stream, value.toList()) } is ViewCreationOptionsDto -> { - stream.write(155) + stream.write(156) writeValue(stream, value.toList()) } is CameraPositionDto -> { - stream.write(156) + stream.write(157) writeValue(stream, value.toList()) } is MarkerDto -> { - stream.write(157) + stream.write(158) writeValue(stream, value.toList()) } is MarkerOptionsDto -> { - stream.write(158) + stream.write(159) writeValue(stream, value.toList()) } is ImageDescriptorDto -> { - stream.write(159) + stream.write(160) writeValue(stream, value.toList()) } is InfoWindowDto -> { - stream.write(160) + stream.write(161) writeValue(stream, value.toList()) } is MarkerAnchorDto -> { - stream.write(161) + stream.write(162) writeValue(stream, value.toList()) } is PolygonDto -> { - stream.write(162) + stream.write(163) writeValue(stream, value.toList()) } is PolygonOptionsDto -> { - stream.write(163) + stream.write(164) writeValue(stream, value.toList()) } is PolygonHoleDto -> { - stream.write(164) + stream.write(165) writeValue(stream, value.toList()) } is StyleSpanStrokeStyleDto -> { - stream.write(165) + stream.write(166) writeValue(stream, value.toList()) } is StyleSpanDto -> { - stream.write(166) + stream.write(167) writeValue(stream, value.toList()) } is PolylineDto -> { - stream.write(167) + stream.write(168) writeValue(stream, value.toList()) } is PatternItemDto -> { - stream.write(168) + stream.write(169) writeValue(stream, value.toList()) } is PolylineOptionsDto -> { - stream.write(169) + stream.write(170) writeValue(stream, value.toList()) } is CircleDto -> { - stream.write(170) + stream.write(171) writeValue(stream, value.toList()) } is CircleOptionsDto -> { - stream.write(171) + stream.write(172) writeValue(stream, value.toList()) } is MapPaddingDto -> { - stream.write(172) + stream.write(173) writeValue(stream, value.toList()) } is RouteTokenOptionsDto -> { - stream.write(173) + stream.write(174) writeValue(stream, value.toList()) } is DestinationsDto -> { - stream.write(174) + stream.write(175) writeValue(stream, value.toList()) } is RoutingOptionsDto -> { - stream.write(175) + stream.write(176) writeValue(stream, value.toList()) } is NavigationDisplayOptionsDto -> { - stream.write(176) + stream.write(177) writeValue(stream, value.toList()) } is NavigationWaypointDto -> { - stream.write(177) + stream.write(178) writeValue(stream, value.toList()) } is NavigationTimeAndDistanceDto -> { - stream.write(178) + stream.write(179) writeValue(stream, value.toList()) } is NavigationAudioGuidanceSettingsDto -> { - stream.write(179) + stream.write(180) writeValue(stream, value.toList()) } is SimulationOptionsDto -> { - stream.write(180) + stream.write(181) writeValue(stream, value.toList()) } is LatLngDto -> { - stream.write(181) + stream.write(182) writeValue(stream, value.toList()) } is LatLngBoundsDto -> { - stream.write(182) + stream.write(183) writeValue(stream, value.toList()) } is SpeedingUpdatedEventDto -> { - stream.write(183) + stream.write(184) writeValue(stream, value.toList()) } is GpsAvailabilityChangeEventDto -> { - stream.write(184) + stream.write(185) writeValue(stream, value.toList()) } is SpeedAlertOptionsThresholdPercentageDto -> { - stream.write(185) + stream.write(186) writeValue(stream, value.toList()) } is SpeedAlertOptionsDto -> { - stream.write(186) + stream.write(187) writeValue(stream, value.toList()) } is RouteSegmentTrafficDataRoadStretchRenderingDataDto -> { - stream.write(187) + stream.write(188) writeValue(stream, value.toList()) } is RouteSegmentTrafficDataDto -> { - stream.write(188) + stream.write(189) writeValue(stream, value.toList()) } is RouteSegmentDto -> { - stream.write(189) + stream.write(190) writeValue(stream, value.toList()) } is LaneDirectionDto -> { - stream.write(190) + stream.write(191) writeValue(stream, value.toList()) } is LaneDto -> { - stream.write(191) + stream.write(192) writeValue(stream, value.toList()) } is StepInfoDto -> { - stream.write(192) + stream.write(193) writeValue(stream, value.toList()) } is NavInfoDto -> { - stream.write(193) + stream.write(194) writeValue(stream, value.toList()) } else -> super.writeValue(stream, value) @@ -7039,6 +7064,7 @@ class NavigationSessionEventApi( fun onRemainingTimeOrDistanceChanged( remainingTimeArg: Double, remainingDistanceArg: Double, + delaySeverityArg: TrafficDelaySeverityDto, callback: (Result) -> Unit, ) { val separatedMessageChannelSuffix = @@ -7046,7 +7072,7 @@ class NavigationSessionEventApi( val channelName = "dev.flutter.pigeon.google_navigation_flutter.NavigationSessionEventApi.onRemainingTimeOrDistanceChanged$separatedMessageChannelSuffix" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(remainingTimeArg, remainingDistanceArg)) { + channel.send(listOf(remainingTimeArg, remainingDistanceArg, delaySeverityArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?))) diff --git a/example/lib/pages/navigation.dart b/example/lib/pages/navigation.dart index 7ea6ba65..c8f07097 100644 --- a/example/lib/pages/navigation.dart +++ b/example/lib/pages/navigation.dart @@ -87,6 +87,7 @@ class _NavigationPageState extends ExamplePageState { int _remainingTime = 0; int _remainingDistance = 0; + TrafficDelaySeverity _delaySeverity = TrafficDelaySeverity.noData; int _onRouteChangedEventCallCount = 0; int _onRoadSnappedLocationUpdatedEventCallCount = 0; int _onRoadSnappedRawLocationUpdatedEventCallCount = 0; @@ -482,6 +483,7 @@ class _NavigationPageState extends ExamplePageState { setState(() { _remainingDistance = event.remainingDistance.toInt(); _remainingTime = event.remainingTime.toInt(); + _delaySeverity = event.delaySeverity; _onRemainingTimeOrDistanceChangedEventCallCount += 1; }); } @@ -680,6 +682,7 @@ class _NavigationPageState extends ExamplePageState { _nextWaypointIndex = 0; _remainingDistance = 0; _remainingTime = 0; + _delaySeverity = TrafficDelaySeverity.noData; _waitingForUserToContinue = false; _arrivedWaypoint = null; }); @@ -1403,6 +1406,10 @@ class _NavigationPageState extends ExamplePageState { 'Remaining distance: ${formatRemainingDistance(_remainingDistance)}', style: const TextStyle(fontSize: 15), ), + Text( + 'Traffic delay severity: ${_delaySeverity.toString().split('.').last}', + style: const TextStyle(fontSize: 15), + ), ], ), ), diff --git a/ios/google_navigation_flutter/Sources/google_navigation_flutter/Convert.swift b/ios/google_navigation_flutter/Sources/google_navigation_flutter/Convert.swift index 24f1840a..65ed5849 100644 --- a/ios/google_navigation_flutter/Sources/google_navigation_flutter/Convert.swift +++ b/ios/google_navigation_flutter/Sources/google_navigation_flutter/Convert.swift @@ -509,6 +509,18 @@ enum Convert { } } + static func convertDelaySeverity( + _ delayCategory: GMSNavigationDelayCategory + ) -> TrafficDelaySeverityDto { + switch delayCategory { + case .light: return .light + case .medium: return .medium + case .heavy: return .heavy + case .noData: return .noData + @unknown default: return .noData + } + } + static func convertPath(_ path: GMSPath) -> [LatLngDto] { var coordinates = [LatLngDto]() guard path.count() != 0 else { return coordinates } diff --git a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift index 05440346..038d5d1b 100644 --- a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift +++ b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift @@ -315,11 +315,14 @@ class GoogleMapsNavigationSessionManager: NSObject { } func getCurrentTimeAndDistance() throws -> NavigationTimeAndDistanceDto { - let time = try getNavigator().timeToNextDestination - let distance = try getNavigator().distanceToNextDestination + let navigator = try getNavigator() + let time = navigator.timeToNextDestination + let distance = navigator.distanceToNextDestination + let delaySeverity = Convert.convertDelaySeverity(navigator.delayCategoryToNextDestination) return .init( time: time, - distance: distance + distance: distance, + delaySeverity: delaySeverity ) } @@ -583,6 +586,7 @@ extension GoogleMapsNavigationSessionManager: GMSNavigatorListener { _navigationSessionEventApi?.onRemainingTimeOrDistanceChanged( remainingTime: time, remainingDistance: navigator.distanceToNextDestination, + delaySeverity: Convert.convertDelaySeverity(navigator.delayCategoryToNextDestination), completion: { _ in } ) } @@ -594,6 +598,7 @@ extension GoogleMapsNavigationSessionManager: GMSNavigatorListener { _navigationSessionEventApi?.onRemainingTimeOrDistanceChanged( remainingTime: navigator.timeToNextDestination, remainingDistance: distance, + delaySeverity: Convert.convertDelaySeverity(navigator.delayCategoryToNextDestination), completion: { _ in } ) } diff --git a/ios/google_navigation_flutter/Sources/google_navigation_flutter/messages.g.swift b/ios/google_navigation_flutter/Sources/google_navigation_flutter/messages.g.swift index d424aa11..8e002b40 100644 --- a/ios/google_navigation_flutter/Sources/google_navigation_flutter/messages.g.swift +++ b/ios/google_navigation_flutter/Sources/google_navigation_flutter/messages.g.swift @@ -269,6 +269,13 @@ enum RouteStatusDto: Int { case unknown = 14 } +enum TrafficDelaySeverityDto: Int { + case light = 0 + case medium = 1 + case heavy = 2 + case noData = 3 +} + enum AudioGuidanceTypeDto: Int { case silent = 0 case alertsOnly = 1 @@ -1508,21 +1515,25 @@ struct NavigationWaypointDto: Hashable { struct NavigationTimeAndDistanceDto: Hashable { var time: Double var distance: Double + var delaySeverity: TrafficDelaySeverityDto // swift-format-ignore: AlwaysUseLowerCamelCase static func fromList(_ pigeonVar_list: [Any?]) -> NavigationTimeAndDistanceDto? { let time = pigeonVar_list[0] as! Double let distance = pigeonVar_list[1] as! Double + let delaySeverity = pigeonVar_list[2] as! TrafficDelaySeverityDto return NavigationTimeAndDistanceDto( time: time, - distance: distance + distance: distance, + delaySeverity: delaySeverity ) } func toList() -> [Any?] { return [ time, distance, + delaySeverity, ] } static func == (lhs: NavigationTimeAndDistanceDto, rhs: NavigationTimeAndDistanceDto) -> Bool { @@ -2196,139 +2207,145 @@ private class MessagesPigeonCodecReader: FlutterStandardReader { case 144: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return AudioGuidanceTypeDto(rawValue: enumResultAsInt) + return TrafficDelaySeverityDto(rawValue: enumResultAsInt) } return nil case 145: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return SpeedAlertSeverityDto(rawValue: enumResultAsInt) + return AudioGuidanceTypeDto(rawValue: enumResultAsInt) } return nil case 146: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return RouteSegmentTrafficDataStatusDto(rawValue: enumResultAsInt) + return SpeedAlertSeverityDto(rawValue: enumResultAsInt) } return nil case 147: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto(rawValue: enumResultAsInt) + return RouteSegmentTrafficDataStatusDto(rawValue: enumResultAsInt) } return nil case 148: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return ManeuverDto(rawValue: enumResultAsInt) + return RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto(rawValue: enumResultAsInt) } return nil case 149: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return DrivingSideDto(rawValue: enumResultAsInt) + return ManeuverDto(rawValue: enumResultAsInt) } return nil case 150: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return NavStateDto(rawValue: enumResultAsInt) + return DrivingSideDto(rawValue: enumResultAsInt) } return nil case 151: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return LaneShapeDto(rawValue: enumResultAsInt) + return NavStateDto(rawValue: enumResultAsInt) } return nil case 152: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return TaskRemovedBehaviorDto(rawValue: enumResultAsInt) + return LaneShapeDto(rawValue: enumResultAsInt) } return nil case 153: - return MapOptionsDto.fromList(self.readValue() as! [Any?]) + let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) + if let enumResultAsInt = enumResultAsInt { + return TaskRemovedBehaviorDto(rawValue: enumResultAsInt) + } + return nil case 154: - return NavigationViewOptionsDto.fromList(self.readValue() as! [Any?]) + return MapOptionsDto.fromList(self.readValue() as! [Any?]) case 155: - return ViewCreationOptionsDto.fromList(self.readValue() as! [Any?]) + return NavigationViewOptionsDto.fromList(self.readValue() as! [Any?]) case 156: - return CameraPositionDto.fromList(self.readValue() as! [Any?]) + return ViewCreationOptionsDto.fromList(self.readValue() as! [Any?]) case 157: - return MarkerDto.fromList(self.readValue() as! [Any?]) + return CameraPositionDto.fromList(self.readValue() as! [Any?]) case 158: - return MarkerOptionsDto.fromList(self.readValue() as! [Any?]) + return MarkerDto.fromList(self.readValue() as! [Any?]) case 159: - return ImageDescriptorDto.fromList(self.readValue() as! [Any?]) + return MarkerOptionsDto.fromList(self.readValue() as! [Any?]) case 160: - return InfoWindowDto.fromList(self.readValue() as! [Any?]) + return ImageDescriptorDto.fromList(self.readValue() as! [Any?]) case 161: - return MarkerAnchorDto.fromList(self.readValue() as! [Any?]) + return InfoWindowDto.fromList(self.readValue() as! [Any?]) case 162: - return PolygonDto.fromList(self.readValue() as! [Any?]) + return MarkerAnchorDto.fromList(self.readValue() as! [Any?]) case 163: - return PolygonOptionsDto.fromList(self.readValue() as! [Any?]) + return PolygonDto.fromList(self.readValue() as! [Any?]) case 164: - return PolygonHoleDto.fromList(self.readValue() as! [Any?]) + return PolygonOptionsDto.fromList(self.readValue() as! [Any?]) case 165: - return StyleSpanStrokeStyleDto.fromList(self.readValue() as! [Any?]) + return PolygonHoleDto.fromList(self.readValue() as! [Any?]) case 166: - return StyleSpanDto.fromList(self.readValue() as! [Any?]) + return StyleSpanStrokeStyleDto.fromList(self.readValue() as! [Any?]) case 167: - return PolylineDto.fromList(self.readValue() as! [Any?]) + return StyleSpanDto.fromList(self.readValue() as! [Any?]) case 168: - return PatternItemDto.fromList(self.readValue() as! [Any?]) + return PolylineDto.fromList(self.readValue() as! [Any?]) case 169: - return PolylineOptionsDto.fromList(self.readValue() as! [Any?]) + return PatternItemDto.fromList(self.readValue() as! [Any?]) case 170: - return CircleDto.fromList(self.readValue() as! [Any?]) + return PolylineOptionsDto.fromList(self.readValue() as! [Any?]) case 171: - return CircleOptionsDto.fromList(self.readValue() as! [Any?]) + return CircleDto.fromList(self.readValue() as! [Any?]) case 172: - return MapPaddingDto.fromList(self.readValue() as! [Any?]) + return CircleOptionsDto.fromList(self.readValue() as! [Any?]) case 173: - return RouteTokenOptionsDto.fromList(self.readValue() as! [Any?]) + return MapPaddingDto.fromList(self.readValue() as! [Any?]) case 174: - return DestinationsDto.fromList(self.readValue() as! [Any?]) + return RouteTokenOptionsDto.fromList(self.readValue() as! [Any?]) case 175: - return RoutingOptionsDto.fromList(self.readValue() as! [Any?]) + return DestinationsDto.fromList(self.readValue() as! [Any?]) case 176: - return NavigationDisplayOptionsDto.fromList(self.readValue() as! [Any?]) + return RoutingOptionsDto.fromList(self.readValue() as! [Any?]) case 177: - return NavigationWaypointDto.fromList(self.readValue() as! [Any?]) + return NavigationDisplayOptionsDto.fromList(self.readValue() as! [Any?]) case 178: - return NavigationTimeAndDistanceDto.fromList(self.readValue() as! [Any?]) + return NavigationWaypointDto.fromList(self.readValue() as! [Any?]) case 179: - return NavigationAudioGuidanceSettingsDto.fromList(self.readValue() as! [Any?]) + return NavigationTimeAndDistanceDto.fromList(self.readValue() as! [Any?]) case 180: - return SimulationOptionsDto.fromList(self.readValue() as! [Any?]) + return NavigationAudioGuidanceSettingsDto.fromList(self.readValue() as! [Any?]) case 181: - return LatLngDto.fromList(self.readValue() as! [Any?]) + return SimulationOptionsDto.fromList(self.readValue() as! [Any?]) case 182: - return LatLngBoundsDto.fromList(self.readValue() as! [Any?]) + return LatLngDto.fromList(self.readValue() as! [Any?]) case 183: - return SpeedingUpdatedEventDto.fromList(self.readValue() as! [Any?]) + return LatLngBoundsDto.fromList(self.readValue() as! [Any?]) case 184: - return GpsAvailabilityChangeEventDto.fromList(self.readValue() as! [Any?]) + return SpeedingUpdatedEventDto.fromList(self.readValue() as! [Any?]) case 185: - return SpeedAlertOptionsThresholdPercentageDto.fromList(self.readValue() as! [Any?]) + return GpsAvailabilityChangeEventDto.fromList(self.readValue() as! [Any?]) case 186: - return SpeedAlertOptionsDto.fromList(self.readValue() as! [Any?]) + return SpeedAlertOptionsThresholdPercentageDto.fromList(self.readValue() as! [Any?]) case 187: + return SpeedAlertOptionsDto.fromList(self.readValue() as! [Any?]) + case 188: return RouteSegmentTrafficDataRoadStretchRenderingDataDto.fromList( self.readValue() as! [Any?]) - case 188: - return RouteSegmentTrafficDataDto.fromList(self.readValue() as! [Any?]) case 189: - return RouteSegmentDto.fromList(self.readValue() as! [Any?]) + return RouteSegmentTrafficDataDto.fromList(self.readValue() as! [Any?]) case 190: - return LaneDirectionDto.fromList(self.readValue() as! [Any?]) + return RouteSegmentDto.fromList(self.readValue() as! [Any?]) case 191: - return LaneDto.fromList(self.readValue() as! [Any?]) + return LaneDirectionDto.fromList(self.readValue() as! [Any?]) case 192: - return StepInfoDto.fromList(self.readValue() as! [Any?]) + return LaneDto.fromList(self.readValue() as! [Any?]) case 193: + return StepInfoDto.fromList(self.readValue() as! [Any?]) + case 194: return NavInfoDto.fromList(self.readValue() as! [Any?]) default: return super.readValue(ofType: type) @@ -2383,155 +2400,158 @@ private class MessagesPigeonCodecWriter: FlutterStandardWriter { } else if let value = value as? RouteStatusDto { super.writeByte(143) super.writeValue(value.rawValue) - } else if let value = value as? AudioGuidanceTypeDto { + } else if let value = value as? TrafficDelaySeverityDto { super.writeByte(144) super.writeValue(value.rawValue) - } else if let value = value as? SpeedAlertSeverityDto { + } else if let value = value as? AudioGuidanceTypeDto { super.writeByte(145) super.writeValue(value.rawValue) - } else if let value = value as? RouteSegmentTrafficDataStatusDto { + } else if let value = value as? SpeedAlertSeverityDto { super.writeByte(146) super.writeValue(value.rawValue) - } else if let value = value as? RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto { + } else if let value = value as? RouteSegmentTrafficDataStatusDto { super.writeByte(147) super.writeValue(value.rawValue) - } else if let value = value as? ManeuverDto { + } else if let value = value as? RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto { super.writeByte(148) super.writeValue(value.rawValue) - } else if let value = value as? DrivingSideDto { + } else if let value = value as? ManeuverDto { super.writeByte(149) super.writeValue(value.rawValue) - } else if let value = value as? NavStateDto { + } else if let value = value as? DrivingSideDto { super.writeByte(150) super.writeValue(value.rawValue) - } else if let value = value as? LaneShapeDto { + } else if let value = value as? NavStateDto { super.writeByte(151) super.writeValue(value.rawValue) - } else if let value = value as? TaskRemovedBehaviorDto { + } else if let value = value as? LaneShapeDto { super.writeByte(152) super.writeValue(value.rawValue) - } else if let value = value as? MapOptionsDto { + } else if let value = value as? TaskRemovedBehaviorDto { super.writeByte(153) + super.writeValue(value.rawValue) + } else if let value = value as? MapOptionsDto { + super.writeByte(154) super.writeValue(value.toList()) } else if let value = value as? NavigationViewOptionsDto { - super.writeByte(154) + super.writeByte(155) super.writeValue(value.toList()) } else if let value = value as? ViewCreationOptionsDto { - super.writeByte(155) + super.writeByte(156) super.writeValue(value.toList()) } else if let value = value as? CameraPositionDto { - super.writeByte(156) + super.writeByte(157) super.writeValue(value.toList()) } else if let value = value as? MarkerDto { - super.writeByte(157) + super.writeByte(158) super.writeValue(value.toList()) } else if let value = value as? MarkerOptionsDto { - super.writeByte(158) + super.writeByte(159) super.writeValue(value.toList()) } else if let value = value as? ImageDescriptorDto { - super.writeByte(159) + super.writeByte(160) super.writeValue(value.toList()) } else if let value = value as? InfoWindowDto { - super.writeByte(160) + super.writeByte(161) super.writeValue(value.toList()) } else if let value = value as? MarkerAnchorDto { - super.writeByte(161) + super.writeByte(162) super.writeValue(value.toList()) } else if let value = value as? PolygonDto { - super.writeByte(162) + super.writeByte(163) super.writeValue(value.toList()) } else if let value = value as? PolygonOptionsDto { - super.writeByte(163) + super.writeByte(164) super.writeValue(value.toList()) } else if let value = value as? PolygonHoleDto { - super.writeByte(164) + super.writeByte(165) super.writeValue(value.toList()) } else if let value = value as? StyleSpanStrokeStyleDto { - super.writeByte(165) + super.writeByte(166) super.writeValue(value.toList()) } else if let value = value as? StyleSpanDto { - super.writeByte(166) + super.writeByte(167) super.writeValue(value.toList()) } else if let value = value as? PolylineDto { - super.writeByte(167) + super.writeByte(168) super.writeValue(value.toList()) } else if let value = value as? PatternItemDto { - super.writeByte(168) + super.writeByte(169) super.writeValue(value.toList()) } else if let value = value as? PolylineOptionsDto { - super.writeByte(169) + super.writeByte(170) super.writeValue(value.toList()) } else if let value = value as? CircleDto { - super.writeByte(170) + super.writeByte(171) super.writeValue(value.toList()) } else if let value = value as? CircleOptionsDto { - super.writeByte(171) + super.writeByte(172) super.writeValue(value.toList()) } else if let value = value as? MapPaddingDto { - super.writeByte(172) + super.writeByte(173) super.writeValue(value.toList()) } else if let value = value as? RouteTokenOptionsDto { - super.writeByte(173) + super.writeByte(174) super.writeValue(value.toList()) } else if let value = value as? DestinationsDto { - super.writeByte(174) + super.writeByte(175) super.writeValue(value.toList()) } else if let value = value as? RoutingOptionsDto { - super.writeByte(175) + super.writeByte(176) super.writeValue(value.toList()) } else if let value = value as? NavigationDisplayOptionsDto { - super.writeByte(176) + super.writeByte(177) super.writeValue(value.toList()) } else if let value = value as? NavigationWaypointDto { - super.writeByte(177) + super.writeByte(178) super.writeValue(value.toList()) } else if let value = value as? NavigationTimeAndDistanceDto { - super.writeByte(178) + super.writeByte(179) super.writeValue(value.toList()) } else if let value = value as? NavigationAudioGuidanceSettingsDto { - super.writeByte(179) + super.writeByte(180) super.writeValue(value.toList()) } else if let value = value as? SimulationOptionsDto { - super.writeByte(180) + super.writeByte(181) super.writeValue(value.toList()) } else if let value = value as? LatLngDto { - super.writeByte(181) + super.writeByte(182) super.writeValue(value.toList()) } else if let value = value as? LatLngBoundsDto { - super.writeByte(182) + super.writeByte(183) super.writeValue(value.toList()) } else if let value = value as? SpeedingUpdatedEventDto { - super.writeByte(183) + super.writeByte(184) super.writeValue(value.toList()) } else if let value = value as? GpsAvailabilityChangeEventDto { - super.writeByte(184) + super.writeByte(185) super.writeValue(value.toList()) } else if let value = value as? SpeedAlertOptionsThresholdPercentageDto { - super.writeByte(185) + super.writeByte(186) super.writeValue(value.toList()) } else if let value = value as? SpeedAlertOptionsDto { - super.writeByte(186) + super.writeByte(187) super.writeValue(value.toList()) } else if let value = value as? RouteSegmentTrafficDataRoadStretchRenderingDataDto { - super.writeByte(187) + super.writeByte(188) super.writeValue(value.toList()) } else if let value = value as? RouteSegmentTrafficDataDto { - super.writeByte(188) + super.writeByte(189) super.writeValue(value.toList()) } else if let value = value as? RouteSegmentDto { - super.writeByte(189) + super.writeByte(190) super.writeValue(value.toList()) } else if let value = value as? LaneDirectionDto { - super.writeByte(190) + super.writeByte(191) super.writeValue(value.toList()) } else if let value = value as? LaneDto { - super.writeByte(191) + super.writeByte(192) super.writeValue(value.toList()) } else if let value = value as? StepInfoDto { - super.writeByte(192) + super.writeByte(193) super.writeValue(value.toList()) } else if let value = value as? NavInfoDto { - super.writeByte(193) + super.writeByte(194) super.writeValue(value.toList()) } else { super.writeValue(value) @@ -5815,6 +5835,7 @@ protocol NavigationSessionEventApiProtocol { func onRouteChanged(completion: @escaping (Result) -> Void) func onRemainingTimeOrDistanceChanged( remainingTime remainingTimeArg: Double, remainingDistance remainingDistanceArg: Double, + delaySeverity delaySeverityArg: TrafficDelaySeverityDto, completion: @escaping (Result) -> Void) /// Android-only event. func onTrafficUpdated(completion: @escaping (Result) -> Void) @@ -5955,13 +5976,15 @@ class NavigationSessionEventApi: NavigationSessionEventApiProtocol { } func onRemainingTimeOrDistanceChanged( remainingTime remainingTimeArg: Double, remainingDistance remainingDistanceArg: Double, + delaySeverity delaySeverityArg: TrafficDelaySeverityDto, completion: @escaping (Result) -> Void ) { let channelName: String = "dev.flutter.pigeon.google_navigation_flutter.NavigationSessionEventApi.onRemainingTimeOrDistanceChanged\(messageChannelSuffix)" let channel = FlutterBasicMessageChannel( name: channelName, binaryMessenger: binaryMessenger, codec: codec) - channel.sendMessage([remainingTimeArg, remainingDistanceArg] as [Any?]) { response in + channel.sendMessage([remainingTimeArg, remainingDistanceArg, delaySeverityArg] as [Any?]) { + response in guard let listResponse = response as? [Any?] else { completion(.failure(createConnectionError(withChannelName: channelName))) return diff --git a/lib/src/method_channel/convert/navigation.dart b/lib/src/method_channel/convert/navigation.dart index a145944f..1787a8f0 100644 --- a/lib/src/method_channel/convert/navigation.dart +++ b/lib/src/method_channel/convert/navigation.dart @@ -84,12 +84,34 @@ extension ConvertRouteStatusDto on RouteStatusDto { } } +/// [TrafficDelaySeverityDto] convert extension. +/// @nodoc +extension ConvertTrafficDelaySeverityDto on TrafficDelaySeverityDto { + /// Converts [TrafficDelaySeverityDto] to [TrafficDelaySeverity] + TrafficDelaySeverity toTrafficDelaySeverity() { + switch (this) { + case TrafficDelaySeverityDto.light: + return TrafficDelaySeverity.light; + case TrafficDelaySeverityDto.medium: + return TrafficDelaySeverity.medium; + case TrafficDelaySeverityDto.heavy: + return TrafficDelaySeverity.heavy; + case TrafficDelaySeverityDto.noData: + return TrafficDelaySeverity.noData; + } + } +} + /// [NavigationTimeAndDistanceDto] convert extension. /// @nodoc extension ConvertNavigationTimeAndDistanceDto on NavigationTimeAndDistanceDto { /// Converts [NavigationTimeAndDistanceDto] to [NavigationTimeAndDistance] NavigationTimeAndDistance toNavigationTimeAndDistance() => - NavigationTimeAndDistance(time: time, distance: distance); + NavigationTimeAndDistance( + time: time, + distance: distance, + delaySeverity: delaySeverity.toTrafficDelaySeverity(), + ); } /// [NavigationAudioGuidanceSettings] convert extension. diff --git a/lib/src/method_channel/messages.g.dart b/lib/src/method_channel/messages.g.dart index e2bc153e..cc8645cc 100644 --- a/lib/src/method_channel/messages.g.dart +++ b/lib/src/method_channel/messages.g.dart @@ -154,6 +154,8 @@ enum RouteStatusDto { unknown, } +enum TrafficDelaySeverityDto { light, medium, heavy, noData } + enum AudioGuidanceTypeDto { silent, alertsOnly, alertsAndGuidance } enum SpeedAlertSeverityDto { unknown, notSpeeding, minor, major } @@ -1851,14 +1853,20 @@ class NavigationWaypointDto { } class NavigationTimeAndDistanceDto { - NavigationTimeAndDistanceDto({required this.time, required this.distance}); + NavigationTimeAndDistanceDto({ + required this.time, + required this.distance, + required this.delaySeverity, + }); double time; double distance; + TrafficDelaySeverityDto delaySeverity; + List _toList() { - return [time, distance]; + return [time, distance, delaySeverity]; } Object encode() { @@ -1870,6 +1878,7 @@ class NavigationTimeAndDistanceDto { return NavigationTimeAndDistanceDto( time: result[0]! as double, distance: result[1]! as double, + delaySeverity: result[2]! as TrafficDelaySeverityDto, ); } @@ -2733,156 +2742,159 @@ class _PigeonCodec extends StandardMessageCodec { } else if (value is RouteStatusDto) { buffer.putUint8(143); writeValue(buffer, value.index); - } else if (value is AudioGuidanceTypeDto) { + } else if (value is TrafficDelaySeverityDto) { buffer.putUint8(144); writeValue(buffer, value.index); - } else if (value is SpeedAlertSeverityDto) { + } else if (value is AudioGuidanceTypeDto) { buffer.putUint8(145); writeValue(buffer, value.index); - } else if (value is RouteSegmentTrafficDataStatusDto) { + } else if (value is SpeedAlertSeverityDto) { buffer.putUint8(146); writeValue(buffer, value.index); + } else if (value is RouteSegmentTrafficDataStatusDto) { + buffer.putUint8(147); + writeValue(buffer, value.index); } else if (value is RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto) { - buffer.putUint8(147); + buffer.putUint8(148); writeValue(buffer, value.index); } else if (value is ManeuverDto) { - buffer.putUint8(148); + buffer.putUint8(149); writeValue(buffer, value.index); } else if (value is DrivingSideDto) { - buffer.putUint8(149); + buffer.putUint8(150); writeValue(buffer, value.index); } else if (value is NavStateDto) { - buffer.putUint8(150); + buffer.putUint8(151); writeValue(buffer, value.index); } else if (value is LaneShapeDto) { - buffer.putUint8(151); + buffer.putUint8(152); writeValue(buffer, value.index); } else if (value is TaskRemovedBehaviorDto) { - buffer.putUint8(152); + buffer.putUint8(153); writeValue(buffer, value.index); } else if (value is MapOptionsDto) { - buffer.putUint8(153); + buffer.putUint8(154); writeValue(buffer, value.encode()); } else if (value is NavigationViewOptionsDto) { - buffer.putUint8(154); + buffer.putUint8(155); writeValue(buffer, value.encode()); } else if (value is ViewCreationOptionsDto) { - buffer.putUint8(155); + buffer.putUint8(156); writeValue(buffer, value.encode()); } else if (value is CameraPositionDto) { - buffer.putUint8(156); + buffer.putUint8(157); writeValue(buffer, value.encode()); } else if (value is MarkerDto) { - buffer.putUint8(157); + buffer.putUint8(158); writeValue(buffer, value.encode()); } else if (value is MarkerOptionsDto) { - buffer.putUint8(158); + buffer.putUint8(159); writeValue(buffer, value.encode()); } else if (value is ImageDescriptorDto) { - buffer.putUint8(159); + buffer.putUint8(160); writeValue(buffer, value.encode()); } else if (value is InfoWindowDto) { - buffer.putUint8(160); + buffer.putUint8(161); writeValue(buffer, value.encode()); } else if (value is MarkerAnchorDto) { - buffer.putUint8(161); + buffer.putUint8(162); writeValue(buffer, value.encode()); } else if (value is PolygonDto) { - buffer.putUint8(162); + buffer.putUint8(163); writeValue(buffer, value.encode()); } else if (value is PolygonOptionsDto) { - buffer.putUint8(163); + buffer.putUint8(164); writeValue(buffer, value.encode()); } else if (value is PolygonHoleDto) { - buffer.putUint8(164); + buffer.putUint8(165); writeValue(buffer, value.encode()); } else if (value is StyleSpanStrokeStyleDto) { - buffer.putUint8(165); + buffer.putUint8(166); writeValue(buffer, value.encode()); } else if (value is StyleSpanDto) { - buffer.putUint8(166); + buffer.putUint8(167); writeValue(buffer, value.encode()); } else if (value is PolylineDto) { - buffer.putUint8(167); + buffer.putUint8(168); writeValue(buffer, value.encode()); } else if (value is PatternItemDto) { - buffer.putUint8(168); + buffer.putUint8(169); writeValue(buffer, value.encode()); } else if (value is PolylineOptionsDto) { - buffer.putUint8(169); + buffer.putUint8(170); writeValue(buffer, value.encode()); } else if (value is CircleDto) { - buffer.putUint8(170); + buffer.putUint8(171); writeValue(buffer, value.encode()); } else if (value is CircleOptionsDto) { - buffer.putUint8(171); + buffer.putUint8(172); writeValue(buffer, value.encode()); } else if (value is MapPaddingDto) { - buffer.putUint8(172); + buffer.putUint8(173); writeValue(buffer, value.encode()); } else if (value is RouteTokenOptionsDto) { - buffer.putUint8(173); + buffer.putUint8(174); writeValue(buffer, value.encode()); } else if (value is DestinationsDto) { - buffer.putUint8(174); + buffer.putUint8(175); writeValue(buffer, value.encode()); } else if (value is RoutingOptionsDto) { - buffer.putUint8(175); + buffer.putUint8(176); writeValue(buffer, value.encode()); } else if (value is NavigationDisplayOptionsDto) { - buffer.putUint8(176); + buffer.putUint8(177); writeValue(buffer, value.encode()); } else if (value is NavigationWaypointDto) { - buffer.putUint8(177); + buffer.putUint8(178); writeValue(buffer, value.encode()); } else if (value is NavigationTimeAndDistanceDto) { - buffer.putUint8(178); + buffer.putUint8(179); writeValue(buffer, value.encode()); } else if (value is NavigationAudioGuidanceSettingsDto) { - buffer.putUint8(179); + buffer.putUint8(180); writeValue(buffer, value.encode()); } else if (value is SimulationOptionsDto) { - buffer.putUint8(180); + buffer.putUint8(181); writeValue(buffer, value.encode()); } else if (value is LatLngDto) { - buffer.putUint8(181); + buffer.putUint8(182); writeValue(buffer, value.encode()); } else if (value is LatLngBoundsDto) { - buffer.putUint8(182); + buffer.putUint8(183); writeValue(buffer, value.encode()); } else if (value is SpeedingUpdatedEventDto) { - buffer.putUint8(183); + buffer.putUint8(184); writeValue(buffer, value.encode()); } else if (value is GpsAvailabilityChangeEventDto) { - buffer.putUint8(184); + buffer.putUint8(185); writeValue(buffer, value.encode()); } else if (value is SpeedAlertOptionsThresholdPercentageDto) { - buffer.putUint8(185); + buffer.putUint8(186); writeValue(buffer, value.encode()); } else if (value is SpeedAlertOptionsDto) { - buffer.putUint8(186); + buffer.putUint8(187); writeValue(buffer, value.encode()); } else if (value is RouteSegmentTrafficDataRoadStretchRenderingDataDto) { - buffer.putUint8(187); + buffer.putUint8(188); writeValue(buffer, value.encode()); } else if (value is RouteSegmentTrafficDataDto) { - buffer.putUint8(188); + buffer.putUint8(189); writeValue(buffer, value.encode()); } else if (value is RouteSegmentDto) { - buffer.putUint8(189); + buffer.putUint8(190); writeValue(buffer, value.encode()); } else if (value is LaneDirectionDto) { - buffer.putUint8(190); + buffer.putUint8(191); writeValue(buffer, value.encode()); } else if (value is LaneDto) { - buffer.putUint8(191); + buffer.putUint8(192); writeValue(buffer, value.encode()); } else if (value is StepInfoDto) { - buffer.putUint8(192); + buffer.putUint8(193); writeValue(buffer, value.encode()); } else if (value is NavInfoDto) { - buffer.putUint8(193); + buffer.putUint8(194); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -2941,121 +2953,124 @@ class _PigeonCodec extends StandardMessageCodec { return value == null ? null : RouteStatusDto.values[value]; case 144: final int? value = readValue(buffer) as int?; - return value == null ? null : AudioGuidanceTypeDto.values[value]; + return value == null ? null : TrafficDelaySeverityDto.values[value]; case 145: final int? value = readValue(buffer) as int?; - return value == null ? null : SpeedAlertSeverityDto.values[value]; + return value == null ? null : AudioGuidanceTypeDto.values[value]; case 146: + final int? value = readValue(buffer) as int?; + return value == null ? null : SpeedAlertSeverityDto.values[value]; + case 147: final int? value = readValue(buffer) as int?; return value == null ? null : RouteSegmentTrafficDataStatusDto.values[value]; - case 147: + case 148: final int? value = readValue(buffer) as int?; return value == null ? null : RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto .values[value]; - case 148: + case 149: final int? value = readValue(buffer) as int?; return value == null ? null : ManeuverDto.values[value]; - case 149: + case 150: final int? value = readValue(buffer) as int?; return value == null ? null : DrivingSideDto.values[value]; - case 150: + case 151: final int? value = readValue(buffer) as int?; return value == null ? null : NavStateDto.values[value]; - case 151: + case 152: final int? value = readValue(buffer) as int?; return value == null ? null : LaneShapeDto.values[value]; - case 152: + case 153: final int? value = readValue(buffer) as int?; return value == null ? null : TaskRemovedBehaviorDto.values[value]; - case 153: - return MapOptionsDto.decode(readValue(buffer)!); case 154: - return NavigationViewOptionsDto.decode(readValue(buffer)!); + return MapOptionsDto.decode(readValue(buffer)!); case 155: - return ViewCreationOptionsDto.decode(readValue(buffer)!); + return NavigationViewOptionsDto.decode(readValue(buffer)!); case 156: - return CameraPositionDto.decode(readValue(buffer)!); + return ViewCreationOptionsDto.decode(readValue(buffer)!); case 157: - return MarkerDto.decode(readValue(buffer)!); + return CameraPositionDto.decode(readValue(buffer)!); case 158: - return MarkerOptionsDto.decode(readValue(buffer)!); + return MarkerDto.decode(readValue(buffer)!); case 159: - return ImageDescriptorDto.decode(readValue(buffer)!); + return MarkerOptionsDto.decode(readValue(buffer)!); case 160: - return InfoWindowDto.decode(readValue(buffer)!); + return ImageDescriptorDto.decode(readValue(buffer)!); case 161: - return MarkerAnchorDto.decode(readValue(buffer)!); + return InfoWindowDto.decode(readValue(buffer)!); case 162: - return PolygonDto.decode(readValue(buffer)!); + return MarkerAnchorDto.decode(readValue(buffer)!); case 163: - return PolygonOptionsDto.decode(readValue(buffer)!); + return PolygonDto.decode(readValue(buffer)!); case 164: - return PolygonHoleDto.decode(readValue(buffer)!); + return PolygonOptionsDto.decode(readValue(buffer)!); case 165: - return StyleSpanStrokeStyleDto.decode(readValue(buffer)!); + return PolygonHoleDto.decode(readValue(buffer)!); case 166: - return StyleSpanDto.decode(readValue(buffer)!); + return StyleSpanStrokeStyleDto.decode(readValue(buffer)!); case 167: - return PolylineDto.decode(readValue(buffer)!); + return StyleSpanDto.decode(readValue(buffer)!); case 168: - return PatternItemDto.decode(readValue(buffer)!); + return PolylineDto.decode(readValue(buffer)!); case 169: - return PolylineOptionsDto.decode(readValue(buffer)!); + return PatternItemDto.decode(readValue(buffer)!); case 170: - return CircleDto.decode(readValue(buffer)!); + return PolylineOptionsDto.decode(readValue(buffer)!); case 171: - return CircleOptionsDto.decode(readValue(buffer)!); + return CircleDto.decode(readValue(buffer)!); case 172: - return MapPaddingDto.decode(readValue(buffer)!); + return CircleOptionsDto.decode(readValue(buffer)!); case 173: - return RouteTokenOptionsDto.decode(readValue(buffer)!); + return MapPaddingDto.decode(readValue(buffer)!); case 174: - return DestinationsDto.decode(readValue(buffer)!); + return RouteTokenOptionsDto.decode(readValue(buffer)!); case 175: - return RoutingOptionsDto.decode(readValue(buffer)!); + return DestinationsDto.decode(readValue(buffer)!); case 176: - return NavigationDisplayOptionsDto.decode(readValue(buffer)!); + return RoutingOptionsDto.decode(readValue(buffer)!); case 177: - return NavigationWaypointDto.decode(readValue(buffer)!); + return NavigationDisplayOptionsDto.decode(readValue(buffer)!); case 178: - return NavigationTimeAndDistanceDto.decode(readValue(buffer)!); + return NavigationWaypointDto.decode(readValue(buffer)!); case 179: - return NavigationAudioGuidanceSettingsDto.decode(readValue(buffer)!); + return NavigationTimeAndDistanceDto.decode(readValue(buffer)!); case 180: - return SimulationOptionsDto.decode(readValue(buffer)!); + return NavigationAudioGuidanceSettingsDto.decode(readValue(buffer)!); case 181: - return LatLngDto.decode(readValue(buffer)!); + return SimulationOptionsDto.decode(readValue(buffer)!); case 182: - return LatLngBoundsDto.decode(readValue(buffer)!); + return LatLngDto.decode(readValue(buffer)!); case 183: - return SpeedingUpdatedEventDto.decode(readValue(buffer)!); + return LatLngBoundsDto.decode(readValue(buffer)!); case 184: - return GpsAvailabilityChangeEventDto.decode(readValue(buffer)!); + return SpeedingUpdatedEventDto.decode(readValue(buffer)!); case 185: + return GpsAvailabilityChangeEventDto.decode(readValue(buffer)!); + case 186: return SpeedAlertOptionsThresholdPercentageDto.decode( readValue(buffer)!, ); - case 186: - return SpeedAlertOptionsDto.decode(readValue(buffer)!); case 187: + return SpeedAlertOptionsDto.decode(readValue(buffer)!); + case 188: return RouteSegmentTrafficDataRoadStretchRenderingDataDto.decode( readValue(buffer)!, ); - case 188: - return RouteSegmentTrafficDataDto.decode(readValue(buffer)!); case 189: - return RouteSegmentDto.decode(readValue(buffer)!); + return RouteSegmentTrafficDataDto.decode(readValue(buffer)!); case 190: - return LaneDirectionDto.decode(readValue(buffer)!); + return RouteSegmentDto.decode(readValue(buffer)!); case 191: - return LaneDto.decode(readValue(buffer)!); + return LaneDirectionDto.decode(readValue(buffer)!); case 192: - return StepInfoDto.decode(readValue(buffer)!); + return LaneDto.decode(readValue(buffer)!); case 193: + return StepInfoDto.decode(readValue(buffer)!); + case 194: return NavInfoDto.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -8012,6 +8027,7 @@ abstract class NavigationSessionEventApi { void onRemainingTimeOrDistanceChanged( double remainingTime, double remainingDistance, + TrafficDelaySeverityDto delaySeverity, ); /// Android-only event. @@ -8229,10 +8245,17 @@ abstract class NavigationSessionEventApi { arg_remainingDistance != null, 'Argument for dev.flutter.pigeon.google_navigation_flutter.NavigationSessionEventApi.onRemainingTimeOrDistanceChanged was null, expected non-null double.', ); + final TrafficDelaySeverityDto? arg_delaySeverity = + (args[2] as TrafficDelaySeverityDto?); + assert( + arg_delaySeverity != null, + 'Argument for dev.flutter.pigeon.google_navigation_flutter.NavigationSessionEventApi.onRemainingTimeOrDistanceChanged was null, expected non-null TrafficDelaySeverityDto.', + ); try { api.onRemainingTimeOrDistanceChanged( arg_remainingTime!, arg_remainingDistance!, + arg_delaySeverity!, ); return wrapResponse(empty: true); } on PlatformException catch (e) { diff --git a/lib/src/method_channel/session_api.dart b/lib/src/method_channel/session_api.dart index 7c60fa5b..9528a074 100644 --- a/lib/src/method_channel/session_api.dart +++ b/lib/src/method_channel/session_api.dart @@ -759,11 +759,13 @@ class NavigationSessionEventApiImpl implements NavigationSessionEventApi { void onRemainingTimeOrDistanceChanged( double remainingTime, double remainingDistance, + TrafficDelaySeverityDto delaySeverity, ) { sessionEventStreamController.add( RemainingTimeOrDistanceChangedEvent( remainingTime: remainingTime, remainingDistance: remainingDistance, + delaySeverity: delaySeverity.toTrafficDelaySeverity(), ), ); } diff --git a/lib/src/types/navigation.dart b/lib/src/types/navigation.dart index b129b4cc..dddb2739 100644 --- a/lib/src/types/navigation.dart +++ b/lib/src/types/navigation.dart @@ -126,13 +126,30 @@ class GpsAvailabilityChangeEvent { ')'; } +/// Traffic delay severity. +/// {@category Navigation} +enum TrafficDelaySeverity { + /// Light traffic or no delays. + light, + + /// Medium traffic delays. + medium, + + /// Heavy traffic delays. + heavy, + + /// No traffic data available. + noData, +} + /// Remaining time or distance change event message. /// {@category Navigation} class RemainingTimeOrDistanceChangedEvent { - /// Initialize with remaining distance in meters and remaining time in seconds. + /// Initialize with remaining distance in meters, remaining time in seconds and delay severity. RemainingTimeOrDistanceChangedEvent({ required this.remainingDistance, required this.remainingTime, + required this.delaySeverity, }); /// Remaining distance in meters. @@ -141,11 +158,15 @@ class RemainingTimeOrDistanceChangedEvent { /// Remaining time in seconds. final double remainingTime; + /// Traffic delay severity. + final TrafficDelaySeverity delaySeverity; + @override String toString() => 'RemainingTimeOrDistanceChangedEvent(' 'remainingDistance: $remainingDistance, ' - 'remainingTime: $remainingTime' + 'remainingTime: $remainingTime, ' + 'delaySeverity: $delaySeverity' ')'; } diff --git a/lib/src/types/navigation_destinations.dart b/lib/src/types/navigation_destinations.dart index e1a87a72..e81ac41e 100644 --- a/lib/src/types/navigation_destinations.dart +++ b/lib/src/types/navigation_destinations.dart @@ -358,18 +358,25 @@ enum NavigationRouteStatus { /// Time and distance to next waypoint. /// {@category Navigation} class NavigationTimeAndDistance { - /// Initialize with time and distance. - NavigationTimeAndDistance({required this.time, required this.distance}); + /// Initialize with time, distance, and delay severity. + NavigationTimeAndDistance({ + required this.time, + required this.distance, + required this.delaySeverity, + }); - /// Time to destination. + /// Time to destination in seconds. final double time; - /// Distance to destination. + /// Distance to destination in meters. final double distance; + /// Traffic delay severity. + final TrafficDelaySeverity delaySeverity; + @override String toString() => - 'NavigationTimeAndDistance(time: $time, distance: $distance)'; + 'NavigationTimeAndDistance(time: $time, distance: $distance, delaySeverity: $delaySeverity)'; } /// Navigation audio guidance type. diff --git a/pigeons/messages.dart b/pigeons/messages.dart index a3882f00..b93a2c87 100644 --- a/pigeons/messages.dart +++ b/pigeons/messages.dart @@ -765,11 +765,18 @@ enum RouteStatusDto { unknown, } +enum TrafficDelaySeverityDto { light, medium, heavy, noData } + class NavigationTimeAndDistanceDto { - NavigationTimeAndDistanceDto({required this.time, required this.distance}); + NavigationTimeAndDistanceDto({ + required this.time, + required this.distance, + required this.delaySeverity, + }); final double time; final double distance; + final TrafficDelaySeverityDto delaySeverity; } enum AudioGuidanceTypeDto { silent, alertsOnly, alertsAndGuidance } @@ -1372,6 +1379,7 @@ abstract class NavigationSessionEventApi { void onRemainingTimeOrDistanceChanged( double remainingTime, double remainingDistance, + TrafficDelaySeverityDto delaySeverity, ); /// Android-only event. diff --git a/test/google_navigation_flutter_test.dart b/test/google_navigation_flutter_test.dart index ff19d434..18f93b4d 100644 --- a/test/google_navigation_flutter_test.dart +++ b/test/google_navigation_flutter_test.dart @@ -1229,7 +1229,11 @@ void main() { // Get current time and distance. final NavigationTimeAndDistanceDto timeAndDistanceIn = - NavigationTimeAndDistanceDto(time: 5.0, distance: 6.0); + NavigationTimeAndDistanceDto( + time: 5.0, + distance: 6.0, + delaySeverity: TrafficDelaySeverityDto.light, + ); when( sessionMockApi.getCurrentTimeAndDistance(), ).thenReturn(timeAndDistanceIn); diff --git a/test/messages_test.g.dart b/test/messages_test.g.dart index a302d2cd..273e6ab4 100644 --- a/test/messages_test.g.dart +++ b/test/messages_test.g.dart @@ -76,156 +76,159 @@ class _PigeonCodec extends StandardMessageCodec { } else if (value is RouteStatusDto) { buffer.putUint8(143); writeValue(buffer, value.index); - } else if (value is AudioGuidanceTypeDto) { + } else if (value is TrafficDelaySeverityDto) { buffer.putUint8(144); writeValue(buffer, value.index); - } else if (value is SpeedAlertSeverityDto) { + } else if (value is AudioGuidanceTypeDto) { buffer.putUint8(145); writeValue(buffer, value.index); - } else if (value is RouteSegmentTrafficDataStatusDto) { + } else if (value is SpeedAlertSeverityDto) { buffer.putUint8(146); writeValue(buffer, value.index); + } else if (value is RouteSegmentTrafficDataStatusDto) { + buffer.putUint8(147); + writeValue(buffer, value.index); } else if (value is RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto) { - buffer.putUint8(147); + buffer.putUint8(148); writeValue(buffer, value.index); } else if (value is ManeuverDto) { - buffer.putUint8(148); + buffer.putUint8(149); writeValue(buffer, value.index); } else if (value is DrivingSideDto) { - buffer.putUint8(149); + buffer.putUint8(150); writeValue(buffer, value.index); } else if (value is NavStateDto) { - buffer.putUint8(150); + buffer.putUint8(151); writeValue(buffer, value.index); } else if (value is LaneShapeDto) { - buffer.putUint8(151); + buffer.putUint8(152); writeValue(buffer, value.index); } else if (value is TaskRemovedBehaviorDto) { - buffer.putUint8(152); + buffer.putUint8(153); writeValue(buffer, value.index); } else if (value is MapOptionsDto) { - buffer.putUint8(153); + buffer.putUint8(154); writeValue(buffer, value.encode()); } else if (value is NavigationViewOptionsDto) { - buffer.putUint8(154); + buffer.putUint8(155); writeValue(buffer, value.encode()); } else if (value is ViewCreationOptionsDto) { - buffer.putUint8(155); + buffer.putUint8(156); writeValue(buffer, value.encode()); } else if (value is CameraPositionDto) { - buffer.putUint8(156); + buffer.putUint8(157); writeValue(buffer, value.encode()); } else if (value is MarkerDto) { - buffer.putUint8(157); + buffer.putUint8(158); writeValue(buffer, value.encode()); } else if (value is MarkerOptionsDto) { - buffer.putUint8(158); + buffer.putUint8(159); writeValue(buffer, value.encode()); } else if (value is ImageDescriptorDto) { - buffer.putUint8(159); + buffer.putUint8(160); writeValue(buffer, value.encode()); } else if (value is InfoWindowDto) { - buffer.putUint8(160); + buffer.putUint8(161); writeValue(buffer, value.encode()); } else if (value is MarkerAnchorDto) { - buffer.putUint8(161); + buffer.putUint8(162); writeValue(buffer, value.encode()); } else if (value is PolygonDto) { - buffer.putUint8(162); + buffer.putUint8(163); writeValue(buffer, value.encode()); } else if (value is PolygonOptionsDto) { - buffer.putUint8(163); + buffer.putUint8(164); writeValue(buffer, value.encode()); } else if (value is PolygonHoleDto) { - buffer.putUint8(164); + buffer.putUint8(165); writeValue(buffer, value.encode()); } else if (value is StyleSpanStrokeStyleDto) { - buffer.putUint8(165); + buffer.putUint8(166); writeValue(buffer, value.encode()); } else if (value is StyleSpanDto) { - buffer.putUint8(166); + buffer.putUint8(167); writeValue(buffer, value.encode()); } else if (value is PolylineDto) { - buffer.putUint8(167); + buffer.putUint8(168); writeValue(buffer, value.encode()); } else if (value is PatternItemDto) { - buffer.putUint8(168); + buffer.putUint8(169); writeValue(buffer, value.encode()); } else if (value is PolylineOptionsDto) { - buffer.putUint8(169); + buffer.putUint8(170); writeValue(buffer, value.encode()); } else if (value is CircleDto) { - buffer.putUint8(170); + buffer.putUint8(171); writeValue(buffer, value.encode()); } else if (value is CircleOptionsDto) { - buffer.putUint8(171); + buffer.putUint8(172); writeValue(buffer, value.encode()); } else if (value is MapPaddingDto) { - buffer.putUint8(172); + buffer.putUint8(173); writeValue(buffer, value.encode()); } else if (value is RouteTokenOptionsDto) { - buffer.putUint8(173); + buffer.putUint8(174); writeValue(buffer, value.encode()); } else if (value is DestinationsDto) { - buffer.putUint8(174); + buffer.putUint8(175); writeValue(buffer, value.encode()); } else if (value is RoutingOptionsDto) { - buffer.putUint8(175); + buffer.putUint8(176); writeValue(buffer, value.encode()); } else if (value is NavigationDisplayOptionsDto) { - buffer.putUint8(176); + buffer.putUint8(177); writeValue(buffer, value.encode()); } else if (value is NavigationWaypointDto) { - buffer.putUint8(177); + buffer.putUint8(178); writeValue(buffer, value.encode()); } else if (value is NavigationTimeAndDistanceDto) { - buffer.putUint8(178); + buffer.putUint8(179); writeValue(buffer, value.encode()); } else if (value is NavigationAudioGuidanceSettingsDto) { - buffer.putUint8(179); + buffer.putUint8(180); writeValue(buffer, value.encode()); } else if (value is SimulationOptionsDto) { - buffer.putUint8(180); + buffer.putUint8(181); writeValue(buffer, value.encode()); } else if (value is LatLngDto) { - buffer.putUint8(181); + buffer.putUint8(182); writeValue(buffer, value.encode()); } else if (value is LatLngBoundsDto) { - buffer.putUint8(182); + buffer.putUint8(183); writeValue(buffer, value.encode()); } else if (value is SpeedingUpdatedEventDto) { - buffer.putUint8(183); + buffer.putUint8(184); writeValue(buffer, value.encode()); } else if (value is GpsAvailabilityChangeEventDto) { - buffer.putUint8(184); + buffer.putUint8(185); writeValue(buffer, value.encode()); } else if (value is SpeedAlertOptionsThresholdPercentageDto) { - buffer.putUint8(185); + buffer.putUint8(186); writeValue(buffer, value.encode()); } else if (value is SpeedAlertOptionsDto) { - buffer.putUint8(186); + buffer.putUint8(187); writeValue(buffer, value.encode()); } else if (value is RouteSegmentTrafficDataRoadStretchRenderingDataDto) { - buffer.putUint8(187); + buffer.putUint8(188); writeValue(buffer, value.encode()); } else if (value is RouteSegmentTrafficDataDto) { - buffer.putUint8(188); + buffer.putUint8(189); writeValue(buffer, value.encode()); } else if (value is RouteSegmentDto) { - buffer.putUint8(189); + buffer.putUint8(190); writeValue(buffer, value.encode()); } else if (value is LaneDirectionDto) { - buffer.putUint8(190); + buffer.putUint8(191); writeValue(buffer, value.encode()); } else if (value is LaneDto) { - buffer.putUint8(191); + buffer.putUint8(192); writeValue(buffer, value.encode()); } else if (value is StepInfoDto) { - buffer.putUint8(192); + buffer.putUint8(193); writeValue(buffer, value.encode()); } else if (value is NavInfoDto) { - buffer.putUint8(193); + buffer.putUint8(194); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -284,121 +287,124 @@ class _PigeonCodec extends StandardMessageCodec { return value == null ? null : RouteStatusDto.values[value]; case 144: final int? value = readValue(buffer) as int?; - return value == null ? null : AudioGuidanceTypeDto.values[value]; + return value == null ? null : TrafficDelaySeverityDto.values[value]; case 145: final int? value = readValue(buffer) as int?; - return value == null ? null : SpeedAlertSeverityDto.values[value]; + return value == null ? null : AudioGuidanceTypeDto.values[value]; case 146: + final int? value = readValue(buffer) as int?; + return value == null ? null : SpeedAlertSeverityDto.values[value]; + case 147: final int? value = readValue(buffer) as int?; return value == null ? null : RouteSegmentTrafficDataStatusDto.values[value]; - case 147: + case 148: final int? value = readValue(buffer) as int?; return value == null ? null : RouteSegmentTrafficDataRoadStretchRenderingDataStyleDto .values[value]; - case 148: + case 149: final int? value = readValue(buffer) as int?; return value == null ? null : ManeuverDto.values[value]; - case 149: + case 150: final int? value = readValue(buffer) as int?; return value == null ? null : DrivingSideDto.values[value]; - case 150: + case 151: final int? value = readValue(buffer) as int?; return value == null ? null : NavStateDto.values[value]; - case 151: + case 152: final int? value = readValue(buffer) as int?; return value == null ? null : LaneShapeDto.values[value]; - case 152: + case 153: final int? value = readValue(buffer) as int?; return value == null ? null : TaskRemovedBehaviorDto.values[value]; - case 153: - return MapOptionsDto.decode(readValue(buffer)!); case 154: - return NavigationViewOptionsDto.decode(readValue(buffer)!); + return MapOptionsDto.decode(readValue(buffer)!); case 155: - return ViewCreationOptionsDto.decode(readValue(buffer)!); + return NavigationViewOptionsDto.decode(readValue(buffer)!); case 156: - return CameraPositionDto.decode(readValue(buffer)!); + return ViewCreationOptionsDto.decode(readValue(buffer)!); case 157: - return MarkerDto.decode(readValue(buffer)!); + return CameraPositionDto.decode(readValue(buffer)!); case 158: - return MarkerOptionsDto.decode(readValue(buffer)!); + return MarkerDto.decode(readValue(buffer)!); case 159: - return ImageDescriptorDto.decode(readValue(buffer)!); + return MarkerOptionsDto.decode(readValue(buffer)!); case 160: - return InfoWindowDto.decode(readValue(buffer)!); + return ImageDescriptorDto.decode(readValue(buffer)!); case 161: - return MarkerAnchorDto.decode(readValue(buffer)!); + return InfoWindowDto.decode(readValue(buffer)!); case 162: - return PolygonDto.decode(readValue(buffer)!); + return MarkerAnchorDto.decode(readValue(buffer)!); case 163: - return PolygonOptionsDto.decode(readValue(buffer)!); + return PolygonDto.decode(readValue(buffer)!); case 164: - return PolygonHoleDto.decode(readValue(buffer)!); + return PolygonOptionsDto.decode(readValue(buffer)!); case 165: - return StyleSpanStrokeStyleDto.decode(readValue(buffer)!); + return PolygonHoleDto.decode(readValue(buffer)!); case 166: - return StyleSpanDto.decode(readValue(buffer)!); + return StyleSpanStrokeStyleDto.decode(readValue(buffer)!); case 167: - return PolylineDto.decode(readValue(buffer)!); + return StyleSpanDto.decode(readValue(buffer)!); case 168: - return PatternItemDto.decode(readValue(buffer)!); + return PolylineDto.decode(readValue(buffer)!); case 169: - return PolylineOptionsDto.decode(readValue(buffer)!); + return PatternItemDto.decode(readValue(buffer)!); case 170: - return CircleDto.decode(readValue(buffer)!); + return PolylineOptionsDto.decode(readValue(buffer)!); case 171: - return CircleOptionsDto.decode(readValue(buffer)!); + return CircleDto.decode(readValue(buffer)!); case 172: - return MapPaddingDto.decode(readValue(buffer)!); + return CircleOptionsDto.decode(readValue(buffer)!); case 173: - return RouteTokenOptionsDto.decode(readValue(buffer)!); + return MapPaddingDto.decode(readValue(buffer)!); case 174: - return DestinationsDto.decode(readValue(buffer)!); + return RouteTokenOptionsDto.decode(readValue(buffer)!); case 175: - return RoutingOptionsDto.decode(readValue(buffer)!); + return DestinationsDto.decode(readValue(buffer)!); case 176: - return NavigationDisplayOptionsDto.decode(readValue(buffer)!); + return RoutingOptionsDto.decode(readValue(buffer)!); case 177: - return NavigationWaypointDto.decode(readValue(buffer)!); + return NavigationDisplayOptionsDto.decode(readValue(buffer)!); case 178: - return NavigationTimeAndDistanceDto.decode(readValue(buffer)!); + return NavigationWaypointDto.decode(readValue(buffer)!); case 179: - return NavigationAudioGuidanceSettingsDto.decode(readValue(buffer)!); + return NavigationTimeAndDistanceDto.decode(readValue(buffer)!); case 180: - return SimulationOptionsDto.decode(readValue(buffer)!); + return NavigationAudioGuidanceSettingsDto.decode(readValue(buffer)!); case 181: - return LatLngDto.decode(readValue(buffer)!); + return SimulationOptionsDto.decode(readValue(buffer)!); case 182: - return LatLngBoundsDto.decode(readValue(buffer)!); + return LatLngDto.decode(readValue(buffer)!); case 183: - return SpeedingUpdatedEventDto.decode(readValue(buffer)!); + return LatLngBoundsDto.decode(readValue(buffer)!); case 184: - return GpsAvailabilityChangeEventDto.decode(readValue(buffer)!); + return SpeedingUpdatedEventDto.decode(readValue(buffer)!); case 185: + return GpsAvailabilityChangeEventDto.decode(readValue(buffer)!); + case 186: return SpeedAlertOptionsThresholdPercentageDto.decode( readValue(buffer)!, ); - case 186: - return SpeedAlertOptionsDto.decode(readValue(buffer)!); case 187: + return SpeedAlertOptionsDto.decode(readValue(buffer)!); + case 188: return RouteSegmentTrafficDataRoadStretchRenderingDataDto.decode( readValue(buffer)!, ); - case 188: - return RouteSegmentTrafficDataDto.decode(readValue(buffer)!); case 189: - return RouteSegmentDto.decode(readValue(buffer)!); + return RouteSegmentTrafficDataDto.decode(readValue(buffer)!); case 190: - return LaneDirectionDto.decode(readValue(buffer)!); + return RouteSegmentDto.decode(readValue(buffer)!); case 191: - return LaneDto.decode(readValue(buffer)!); + return LaneDirectionDto.decode(readValue(buffer)!); case 192: - return StepInfoDto.decode(readValue(buffer)!); + return LaneDto.decode(readValue(buffer)!); case 193: + return StepInfoDto.decode(readValue(buffer)!); + case 194: return NavInfoDto.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); diff --git a/test/navigation_types_test.dart b/test/navigation_types_test.dart index a3786cce..ffaa9185 100644 --- a/test/navigation_types_test.dart +++ b/test/navigation_types_test.dart @@ -271,10 +271,12 @@ void main() { final NavigationTimeAndDistance td = NavigationTimeAndDistanceDto( time: 5.0, distance: 6.0, + delaySeverity: TrafficDelaySeverityDto.medium, ).toNavigationTimeAndDistance(); expect(td.time, 5.0); expect(td.distance, 6.0); + expect(td.delaySeverity, TrafficDelaySeverity.medium); }); test('Navigation audio guidance conversion to Pigeon DTO', () { @@ -315,6 +317,25 @@ void main() { ); }); + test('Traffic delay severity conversion from Pigeon DTO', () { + expect( + TrafficDelaySeverity.light, + TrafficDelaySeverityDto.light.toTrafficDelaySeverity(), + ); + expect( + TrafficDelaySeverity.medium, + TrafficDelaySeverityDto.medium.toTrafficDelaySeverity(), + ); + expect( + TrafficDelaySeverity.heavy, + TrafficDelaySeverityDto.heavy.toTrafficDelaySeverity(), + ); + expect( + TrafficDelaySeverity.noData, + TrafficDelaySeverityDto.noData.toTrafficDelaySeverity(), + ); + }); + test('Navigation simulation options conversion to Pigeon DTO', () { expect( SimulationOptionsDto(speedMultiplier: 5.5).speedMultiplier,