From 3650d61f39f6072ac3cbb54d837245429752414d Mon Sep 17 00:00:00 2001 From: Rafal Naniewicz Date: Thu, 16 Apr 2026 18:53:30 +0200 Subject: [PATCH 01/13] Implement new route deviation handling New kind of deviation - OffStep was introduced. --- .../ferrostar/core/FerrostarCoreTest.kt | 4 +- .../ferrostar/core/FerrostarCore.kt | 7 +- .../ferrostar/core/RouteDeviationHandler.kt | 3 +- .../core/extensions/TripStateExtensions.kt | 2 +- .../Sources/FerrostarCore/FerrostarCore.swift | 6 +- .../FerrostarCore/NavigationState.swift | 2 +- .../FerrostarCoreTests.swift | 8 +- common/ferrostar/src/deviation_detection.rs | 258 +++++++++++++++--- .../src/navigation_controller/mod.rs | 9 +- .../step_advance/conditions.rs | 221 ++++++++++++++- .../navigation_controller/step_advance/mod.rs | 5 + react-native/core/src/FerrostarCore.ts | 6 +- .../core/src/RouteDeviationHandler.ts | 7 +- 13 files changed, 465 insertions(+), 73 deletions(-) diff --git a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt index 266eae42e..a307b0bc5 100644 --- a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt +++ b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt @@ -458,7 +458,7 @@ class FerrostarCoreTest { routes.first(), NavigationControllerConfig( WaypointAdvanceMode.WaypointWithinRange(100.0), - stepAdvanceDistanceFromStep(16u, 32u, true), + stepAdvanceDistanceFromStep(16u, 32u, true, true), stepAdvanceDistanceToEndOfStep(16u, 32u), routeDeviationTracking = RouteDeviationTracking.Custom( @@ -468,7 +468,7 @@ class FerrostarCoreTest { route: Route, tripState: TripState, ): RouteDeviation { - return RouteDeviation.OffRoute(42.0) + return RouteDeviation.Deviation(DeviationKind.OffRoute(42.0)) } }), CourseFiltering.RAW, diff --git a/android/core/src/main/java/com/stadiamaps/ferrostar/core/FerrostarCore.kt b/android/core/src/main/java/com/stadiamaps/ferrostar/core/FerrostarCore.kt index a00450943..1586d2246 100644 --- a/android/core/src/main/java/com/stadiamaps/ferrostar/core/FerrostarCore.kt +++ b/android/core/src/main/java/com/stadiamaps/ferrostar/core/FerrostarCore.kt @@ -366,14 +366,15 @@ class FerrostarCore( private fun handleStateUpdate(newState: NavState, location: UserLocation) { val tripState = newState.tripState if (tripState is TripState.Navigating) { - if (tripState.deviation is RouteDeviation.OffRoute) { + val deviation = tripState.deviation + if (deviation is RouteDeviation.Deviation) { if (!_routeRequestInFlight && // We can't have a request in flight already hasWaitedMinimumRecalculationDelay( _lastAutomaticRecalculation, minimumTimeBeforeRecalculation) && hasUserMovedSignificantlySinceLastRecalc(location)) { val action = deviationHandler?.correctiveActionForDeviation( - this, tripState.deviation.deviationFromRouteLine, tripState.remainingWaypoints) + this, deviation.kind, tripState.remainingWaypoints) ?: CorrectiveAction.GetNewRoutes(tripState.remainingWaypoints) when (action) { is CorrectiveAction.DoNothing -> { @@ -391,7 +392,7 @@ class FerrostarCore( val state = _state.value // Make sure we are still navigating and the new route is still relevant if (state.tripState is TripState.Navigating && - state.tripState.deviation is RouteDeviation.OffRoute) { + state.tripState.deviation is RouteDeviation.Deviation) { if (processor != null) { processor.loadedAlternativeRoutes(this@FerrostarCore, routes) } else if (routes.isNotEmpty()) { diff --git a/android/core/src/main/java/com/stadiamaps/ferrostar/core/RouteDeviationHandler.kt b/android/core/src/main/java/com/stadiamaps/ferrostar/core/RouteDeviationHandler.kt index 903e0303f..cfe5869a6 100644 --- a/android/core/src/main/java/com/stadiamaps/ferrostar/core/RouteDeviationHandler.kt +++ b/android/core/src/main/java/com/stadiamaps/ferrostar/core/RouteDeviationHandler.kt @@ -1,5 +1,6 @@ package com.stadiamaps.ferrostar.core +import uniffi.ferrostar.DeviationKind import uniffi.ferrostar.Waypoint /** Corrective action to take when the user deviates from the route. */ @@ -26,7 +27,7 @@ sealed class CorrectiveAction { fun interface RouteDeviationHandler { fun correctiveActionForDeviation( core: FerrostarCore, - deviationInMeters: Double, + deviation: DeviationKind, remainingWaypoints: List, ): CorrectiveAction } diff --git a/android/core/src/main/java/com/stadiamaps/ferrostar/core/extensions/TripStateExtensions.kt b/android/core/src/main/java/com/stadiamaps/ferrostar/core/extensions/TripStateExtensions.kt index b6a7e4946..501ee46a0 100644 --- a/android/core/src/main/java/com/stadiamaps/ferrostar/core/extensions/TripStateExtensions.kt +++ b/android/core/src/main/java/com/stadiamaps/ferrostar/core/extensions/TripStateExtensions.kt @@ -132,7 +132,7 @@ fun TripState.preferredUserLocation() = is TripState.Navigating -> { when (this.deviation) { is RouteDeviation.NoDeviation -> this.snappedUserLocation - is RouteDeviation.OffRoute -> this.userLocation + is RouteDeviation.Deviation -> this.userLocation } } is TripState.Idle -> this.userLocation diff --git a/apple/Sources/FerrostarCore/FerrostarCore.swift b/apple/Sources/FerrostarCore/FerrostarCore.swift index ed0a1f22c..bba815ef1 100644 --- a/apple/Sources/FerrostarCore/FerrostarCore.swift +++ b/apple/Sources/FerrostarCore/FerrostarCore.swift @@ -43,7 +43,7 @@ public protocol FerrostarCoreDelegate: AnyObject { /// This hook enables app developers to take the most appropriate corrective action. func core( _ core: FerrostarCore, - correctiveActionForDeviation deviationInMeters: Double, + correctiveActionForDeviation deviation: DeviationKind, remainingWaypoints waypoints: [Waypoint] ) -> CorrectiveAction @@ -437,7 +437,7 @@ public protocol FerrostarCoreDelegate: AnyObject { case .noDeviation: // No action break - case let .offRoute(deviationFromRouteLine: deviationFromRouteLine): + case let .deviation(kind: kind): guard !self.routeRequestInFlight, // We can't have a request in flight already // Ensure a minimum cool down before a new route fetch self.lastAutomaticRecalculation?.timeIntervalSinceNow ?? -TimeInterval @@ -454,7 +454,7 @@ public protocol FerrostarCoreDelegate: AnyObject { switch self.delegate?.core( self, - correctiveActionForDeviation: deviationFromRouteLine, + correctiveActionForDeviation: kind, remainingWaypoints: remainingWaypoints ) ?? .getNewRoutes(waypoints: remainingWaypoints) { case .doNothing: diff --git a/apple/Sources/FerrostarCore/NavigationState.swift b/apple/Sources/FerrostarCore/NavigationState.swift index cdc024445..57ce674a2 100644 --- a/apple/Sources/FerrostarCore/NavigationState.swift +++ b/apple/Sources/FerrostarCore/NavigationState.swift @@ -144,7 +144,7 @@ public struct NavigationState: Hashable { switch deviation { case .noDeviation: snappedUserLocation - case .offRoute: + case .deviation: userLocation } } diff --git a/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift b/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift index 9e6583813..004b84628 100644 --- a/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift +++ b/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift @@ -367,10 +367,14 @@ final class FerrostarCoreTests: XCTestCase { func core( _: FerrostarCore, - correctiveActionForDeviation deviationInMeters: Double, + correctiveActionForDeviation deviation: DeviationKind, remainingWaypoints waypoints: [Waypoint] ) -> CorrectiveAction { - XCTAssertEqual(deviationInMeters, 42) + if case let .offRoute(deviationFromRouteLine: meters) = deviation { + XCTAssertEqual(meters, 42) + } else { + XCTFail("Expected offRoute deviation") + } routeDeviationCallbackExp.fulfill() return .getNewRoutes(waypoints: waypoints) } diff --git a/common/ferrostar/src/deviation_detection.rs b/common/ferrostar/src/deviation_detection.rs index 99cd81f9f..e9b49f33d 100644 --- a/common/ferrostar/src/deviation_detection.rs +++ b/common/ferrostar/src/deviation_detection.rs @@ -91,25 +91,40 @@ impl RouteDeviationTracking { return RouteDeviation::NoDeviation; } - let mut first_step_deviation = None; + let user_point = Point::from(*user_location); - for (index, step) in remaining_steps.iter().enumerate() { - let step_deviation = self.static_threshold_deviation_from_line( - &Point::from(*user_location), - &step.get_linestring(), - max_acceptable_deviation.clone(), - ); + let Some(current_step) = remaining_steps.first() else { + return RouteDeviation::NoDeviation; + }; - if index == 0 { - first_step_deviation = Some(step_deviation.clone()); - } + let current_step_distance = + deviation_from_line(&user_point, ¤t_step.get_linestring()) + .unwrap_or(0.0); + + // Check if the user is on the current step. + if current_step_distance <= *max_acceptable_deviation { + return RouteDeviation::NoDeviation; + } - if matches!(step_deviation, RouteDeviation::NoDeviation) { - return RouteDeviation::NoDeviation; + // User is off the current step. Check if they're on any future step. + for step in remaining_steps.iter().skip(1) { + let distance = deviation_from_line(&user_point, &step.get_linestring()) + .unwrap_or(f64::MAX); + if distance <= *max_acceptable_deviation { + return RouteDeviation::Deviation { + kind: DeviationKind::OffStep { + deviation_from_step_line: current_step_distance, + }, + }; } } - first_step_deviation.unwrap_or(RouteDeviation::NoDeviation) + // Not within threshold of any step — off route. + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: current_step_distance, + }, + } } }, RouteDeviationTracking::Custom { detector } => { @@ -117,25 +132,29 @@ impl RouteDeviationTracking { } } } +} - /// Get the `RouteDeviation` status for a given location on a line string. - /// This can be used with a Route or `RouteStep`. - fn static_threshold_deviation_from_line( - &self, - point: &Point, - line: &LineString, - max_acceptable_deviation: f64, - ) -> RouteDeviation { - deviation_from_line(point, line).map_or(RouteDeviation::NoDeviation, |deviation| { - if deviation > 0.0 && deviation > max_acceptable_deviation { - RouteDeviation::OffRoute { - deviation_from_route_line: deviation, - } - } else { - RouteDeviation::NoDeviation - } - }) - } +/// The kind of deviation from the expected route. +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "uniffi", derive(uniffi::Enum))] +#[cfg_attr(feature = "wasm-bindgen", derive(Tsify))] +#[cfg_attr(feature = "wasm-bindgen", tsify(into_wasm_abi, from_wasm_abi))] +pub enum DeviationKind { + /// The user is off the current step, but still on the route polyline (on a future step). + /// + /// This can happen when the user takes a shortcut, GPS noise places them on a future step, + /// or the route self-intersects. Step advance conditions can use this to limit advancement. + #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] + OffStep { + /// The deviation from the current step line, in meters. + deviation_from_step_line: f64, + }, + /// The user is off the expected route entirely (not within threshold of any remaining step). + #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] + OffRoute { + /// The deviation from the route line, in meters. + deviation_from_route_line: f64, + }, } /// Status information that describes whether the user is proceeding according to the route or not. @@ -149,12 +168,11 @@ impl RouteDeviationTracking { pub enum RouteDeviation { /// The user is proceeding on course within the expected tolerances; everything is normal. NoDeviation, - /// The user is off the expected route. - #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] - OffRoute { - /// The deviation from the route line, in meters. - deviation_from_route_line: f64, - }, + /// The user has deviated from the expected route. + /// + /// Check the [`DeviationKind`] to determine if the user is still on the route polyline + /// (off the current step but on a future step) or off the route entirely. + Deviation { kind: DeviationKind }, } /// A custom deviation detector (for extending the behavior of [`RouteDeviationTracking`]). @@ -326,8 +344,10 @@ proptest! { _route: Route, _trip_state: TripState, ) -> RouteDeviation { - return RouteDeviation::OffRoute { - deviation_from_route_line: 7.0 + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 7.0, + }, } } } @@ -358,8 +378,10 @@ proptest! { ); prop_assert_eq!( tracking.check_route_deviation(&route, &trip_state_on_route), - RouteDeviation::OffRoute { - deviation_from_route_line: 7.0 + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 7.0, + }, } ); @@ -383,8 +405,10 @@ proptest! { ); prop_assert_eq!( tracking.check_route_deviation(&route, &trip_state_random), - RouteDeviation::OffRoute { - deviation_from_route_line: 7.0 + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 7.0, + }, } ); } @@ -457,7 +481,11 @@ proptest! { prop_assert!(calculated <= max_acceptable_deviation); } } - RouteDeviation::OffRoute{ deviation_from_route_line } => { + RouteDeviation::Deviation { kind: DeviationKind::OffStep { .. } } => { + // Cannot happen with a single-step route, but handle for exhaustiveness. + prop_assert!(false, "OffStep should not occur with a single-step route"); + } + RouteDeviation::Deviation { kind: DeviationKind::OffRoute { deviation_from_route_line } } => { prop_assert_eq!( deviation_from_route_line, deviation.unwrap() @@ -506,3 +534,145 @@ proptest! { ); } } + +#[cfg(test)] +mod off_step_tests { + use super::*; + use crate::models::GeographicCoordinate; + use crate::navigation_controller::test_helpers::{gen_dummy_route_step, gen_route_from_steps}; + + #[cfg(all(feature = "std", not(feature = "web-time")))] + use std::time::SystemTime; + + #[cfg(feature = "web-time")] + use web_time::SystemTime; + + fn make_location(lng: f64, lat: f64) -> UserLocation { + UserLocation { + coordinates: GeographicCoordinate { lng, lat }, + horizontal_accuracy: 5.0, + course_over_ground: None, + timestamp: SystemTime::now(), + speed: None, + } + } + + #[test] + fn test_off_step_detected_when_on_future_step() { + // Route: Step 1 goes east, Step 2 goes north + let step1 = gen_dummy_route_step(0.0, 0.0, 0.001, 0.0); // ~111m east + let step2 = gen_dummy_route_step(0.001, 0.0, 0.001, 0.001); // ~111m north + + let route = gen_route_from_steps(vec![step1.clone(), step2.clone()]); + let tracking = RouteDeviationTracking::StaticThreshold { + minimum_horizontal_accuracy: 10, + max_acceptable_deviation: 50.0, + }; + + // User is on step 2's geometry (far from step 1) + let user_on_step2 = make_location(0.001, 0.0005); + let trip_state = get_navigating_trip_state( + user_on_step2, + vec![step1.clone(), step2.clone()], + vec![], + RouteDeviation::NoDeviation, + ); + + let result = tracking.check_route_deviation(&route, &trip_state); + assert!( + matches!(result, RouteDeviation::Deviation { kind: DeviationKind::OffStep { .. } }), + "Should detect OffStep when user is on a future step, got: {result:?}" + ); + } + + #[test] + fn test_no_deviation_when_on_current_step() { + let step1 = gen_dummy_route_step(0.0, 0.0, 0.001, 0.0); + let step2 = gen_dummy_route_step(0.001, 0.0, 0.001, 0.001); + + let route = gen_route_from_steps(vec![step1.clone(), step2.clone()]); + let tracking = RouteDeviationTracking::StaticThreshold { + minimum_horizontal_accuracy: 10, + max_acceptable_deviation: 50.0, + }; + + // User is on step 1's geometry + let user_on_step1 = make_location(0.0005, 0.0); + let trip_state = get_navigating_trip_state( + user_on_step1, + vec![step1, step2], + vec![], + RouteDeviation::NoDeviation, + ); + + let result = tracking.check_route_deviation(&route, &trip_state); + assert_eq!( + result, + RouteDeviation::NoDeviation, + "Should be NoDeviation when user is on current step" + ); + } + + #[test] + fn test_off_route_when_not_on_any_step() { + let step1 = gen_dummy_route_step(0.0, 0.0, 0.001, 0.0); + let step2 = gen_dummy_route_step(0.001, 0.0, 0.001, 0.001); + + let route = gen_route_from_steps(vec![step1.clone(), step2.clone()]); + let tracking = RouteDeviationTracking::StaticThreshold { + minimum_horizontal_accuracy: 10, + max_acceptable_deviation: 50.0, + }; + + // User is far from both steps (~5.5km north) + let user_off_route = make_location(0.0005, 0.05); + let trip_state = get_navigating_trip_state( + user_off_route, + vec![step1, step2], + vec![], + RouteDeviation::NoDeviation, + ); + + let result = tracking.check_route_deviation(&route, &trip_state); + assert!( + matches!(result, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } }), + "Should be OffRoute when user is not on any step, got: {result:?}" + ); + } + + #[test] + fn test_off_step_has_deviation_distance() { + // Step 1 goes east, step 2 goes north — perpendicular + let step1 = gen_dummy_route_step(0.0, 0.0, 0.001, 0.0); // ~111m east + let step2 = gen_dummy_route_step(0.001, 0.0, 0.001, 0.002); // ~222m north + + let route = gen_route_from_steps(vec![step1.clone(), step2.clone()]); + let tracking = RouteDeviationTracking::StaticThreshold { + minimum_horizontal_accuracy: 10, + max_acceptable_deviation: 50.0, + }; + + // User is clearly on step 2's geometry, far from step 1 + // (~111m north of step 1's end, on step 2's line) + let user_on_step2 = make_location(0.001, 0.001); + let trip_state = get_navigating_trip_state( + user_on_step2, + vec![step1, step2], + vec![], + RouteDeviation::NoDeviation, + ); + + let result = tracking.check_route_deviation(&route, &trip_state); + match result { + RouteDeviation::Deviation { + kind: DeviationKind::OffStep { deviation_from_step_line }, + } => { + assert!( + deviation_from_step_line > 0.0, + "OffStep should have a positive deviation distance" + ); + } + _ => panic!("Expected OffStep, got: {result:?}"), + } + } +} diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index fe3d495fd..99c897420 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -507,7 +507,7 @@ impl JsNavigationController { mod tests { use super::step_advance::StepAdvanceCondition; use super::*; - use crate::deviation_detection::RouteDeviation; + use crate::deviation_detection::{DeviationKind, RouteDeviation}; use crate::navigation_controller::step_advance::conditions::{ DistanceEntryAndExitCondition, DistanceToEndOfStepCondition, }; @@ -562,8 +562,11 @@ mod tests { // Regression test that we are never marked as off the route. // We used to encounter this with relative step advance on self-intersecting - // routes, for example. - assert_eq!(deviation, &RouteDeviation::NoDeviation); + // routes, for example. OffStep is acceptable (on the route, just a different step). + assert!( + !matches!(deviation, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } }), + "User should never be off route during simulation, got: {deviation:?}" + ); } TripState::Complete { .. } => { states.push(new_state); diff --git a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs index dd69367c4..f4a8ab6db 100644 --- a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs +++ b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs @@ -6,7 +6,7 @@ use crate::{ deviation_from_line, get_linestring, is_within_threshold_to_end_of_linestring, snap_user_location_to_line, }, - deviation_detection::RouteDeviation, + deviation_detection::{DeviationKind, RouteDeviation}, navigation_controller::models::TripState, }; use geo::Point; @@ -132,6 +132,13 @@ pub struct DistanceFromStepCondition { pub minimum_horizontal_accuracy: u16, /// Whether the condition can succeed when the user is off route. pub calculate_while_off_route: bool, + /// Whether the condition can succeed when the user is off the current step + /// but still on the route polyline (on a future step). + /// + /// Default: `true` (backward compatible — allows advancement when off-step). + /// Set to `false` to prevent step advancement cascading when the user + /// has deviated from the current step. + pub calculate_while_off_step: bool, } impl StepAdvanceCondition for DistanceFromStepCondition { @@ -145,6 +152,7 @@ impl StepAdvanceCondition for DistanceFromStepCondition { distance: self.distance, minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, calculate_while_off_route: self.calculate_while_off_route, + calculate_while_off_step: self.calculate_while_off_step, }) } } @@ -156,10 +164,15 @@ impl DistanceFromStepCondition { let current_step = trip_state.current_step()?; let should_advance = - // If the user is not on route and we don't allow calculating while off route, don't advance - if (!self.calculate_while_off_route && deviation != RouteDeviation::NoDeviation) + // If the user is off route and we don't allow calculating while off route, don't advance + if (!self.calculate_while_off_route + && matches!(deviation, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } })) + // If the user is off the current step and we don't allow calculating while off step, don't advance + || (!self.calculate_while_off_step + && matches!(deviation, RouteDeviation::Deviation { .. })) // If the user location isn't accurate enough, don't advance - || (user_location.horizontal_accuracy > self.minimum_horizontal_accuracy.into()){ + || (user_location.horizontal_accuracy > self.minimum_horizontal_accuracy.into()) + { false } else { let current_position: Point = user_location.into(); @@ -185,6 +198,7 @@ impl StepAdvanceConditionSerializable for DistanceFromStepCondition { distance: self.distance, minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, calculate_while_off_route: self.calculate_while_off_route, + calculate_while_off_step: self.calculate_while_off_step, } } } @@ -348,6 +362,7 @@ impl StepAdvanceCondition for DistanceEntryAndExitCondition { minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, distance: self.distance_after_end_of_step, calculate_while_off_route: false, + calculate_while_off_step: true, }; let should_advance = distance_from_end @@ -674,14 +689,17 @@ mod tests { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance calculate_while_off_route: true, + calculate_while_off_step: true, }; let trip_state = get_navigating_trip_state( user_location, vec![STRAIGHT_LINE_SHORT_ROUTE_STEP.clone()], vec![], - RouteDeviation::OffRoute { - deviation_from_route_line: 10.0, + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 10.0, + }, }, ); @@ -705,14 +723,17 @@ mod tests { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance calculate_while_off_route: false, + calculate_while_off_step: true, }; let trip_state = get_navigating_trip_state( user_location, vec![STRAIGHT_LINE_SHORT_ROUTE_STEP.clone()], vec![], - RouteDeviation::OffRoute { - deviation_from_route_line: 10.0, + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 10.0, + }, }, ); @@ -736,6 +757,7 @@ mod tests { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance calculate_while_off_route: false, + calculate_while_off_step: true, }; let trip_state = get_navigating_trip_state( @@ -1597,3 +1619,186 @@ proptest! { // TODO: Similar to the above, but with, say, 5 random updates where the user is *always* within the distance threshold, so they never advance to the next step } + +#[cfg(test)] +mod off_step_tests { + use super::*; + use crate::models::UserLocation; + use crate::navigation_controller::test_helpers::get_navigating_trip_state; + use crate::test_utils::make_user_location; + use geo::coord; + use std::sync::LazyLock; + + use crate::models::RouteStep; + use crate::navigation_controller::test_helpers::gen_route_step_with_coords; + + static STRAIGHT_LINE_STEP: LazyLock = LazyLock::new(|| { + gen_route_step_with_coords(vec![ + coord!(x: 0.0, y: 0.0), + coord!(x: 0.001, y: 0.0), // 111 meters east + ]) + }); + + static LOCATION_FAR_FROM_STEP: LazyLock = + LazyLock::new(|| make_user_location(coord!(x: 0.005, y: 0.0005), 5.0)); + + #[test] + fn test_calculate_while_off_step_true_allows_advance() { + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + calculate_while_off_route: true, + calculate_while_off_step: true, + }; + + let trip_state = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffStep { + deviation_from_step_line: 50.0, + }, + }, + ); + + let result = condition.should_advance_step(trip_state); + assert!( + result.should_advance, + "Should advance when calculate_while_off_step is true" + ); + } + + #[test] + fn test_calculate_while_off_step_false_blocks_advance() { + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + calculate_while_off_route: true, + calculate_while_off_step: false, + }; + + let trip_state = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffStep { + deviation_from_step_line: 50.0, + }, + }, + ); + + let result = condition.should_advance_step(trip_state); + assert!( + !result.should_advance, + "Should not advance when calculate_while_off_step is false and deviation is OffStep" + ); + } + + #[test] + fn test_calculate_while_off_route_false_does_not_block_off_step() { + // calculate_while_off_route: false should only block OffRoute, not OffStep + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + calculate_while_off_route: false, + calculate_while_off_step: true, + }; + + let trip_state = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffStep { + deviation_from_step_line: 50.0, + }, + }, + ); + + let result = condition.should_advance_step(trip_state); + assert!( + result.should_advance, + "calculate_while_off_route: false should not block advancement when OffStep" + ); + } + + #[test] + fn test_calculate_while_off_route_false_still_blocks_off_route() { + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + calculate_while_off_route: false, + calculate_while_off_step: true, + }; + + let trip_state = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 200.0, + }, + }, + ); + + let result = condition.should_advance_step(trip_state); + assert!( + !result.should_advance, + "calculate_while_off_route: false should still block advancement when OffRoute" + ); + } + + #[test] + fn test_both_flags_false_blocks_both() { + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + calculate_while_off_route: false, + calculate_while_off_step: false, + }; + + // Test OffStep blocked + let trip_state_off_step = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffStep { + deviation_from_step_line: 50.0, + }, + }, + ); + let result = condition.should_advance_step(trip_state_off_step); + assert!(!result.should_advance, "Both false should block OffStep"); + + // Test OffRoute blocked + let trip_state_off_route = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { + deviation_from_route_line: 200.0, + }, + }, + ); + let result = condition.should_advance_step(trip_state_off_route); + assert!(!result.should_advance, "Both false should block OffRoute"); + + // Test NoDeviation still works + let trip_state_on_route = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::NoDeviation, + ); + let result = condition.should_advance_step(trip_state_on_route); + assert!( + result.should_advance, + "Both false should still allow advance when NoDeviation" + ); + } +} diff --git a/common/ferrostar/src/navigation_controller/step_advance/mod.rs b/common/ferrostar/src/navigation_controller/step_advance/mod.rs index d82403a1d..7f93c52a2 100644 --- a/common/ferrostar/src/navigation_controller/step_advance/mod.rs +++ b/common/ferrostar/src/navigation_controller/step_advance/mod.rs @@ -115,6 +115,7 @@ pub enum SerializableStepAdvanceCondition { distance: u16, minimum_horizontal_accuracy: u16, calculate_while_off_route: bool, + calculate_while_off_step: bool, }, #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] DistanceEntryExit { @@ -155,10 +156,12 @@ impl From for Arc { distance, minimum_horizontal_accuracy, calculate_while_off_route, + calculate_while_off_step, } => Arc::new(DistanceFromStepCondition { distance, minimum_horizontal_accuracy, calculate_while_off_route, + calculate_while_off_step, }), SerializableStepAdvanceCondition::DistanceEntryExit { minimum_horizontal_accuracy, @@ -233,11 +236,13 @@ pub fn step_advance_distance_from_step( distance: u16, minimum_horizontal_accuracy: u16, calculate_while_off_route: bool, + calculate_while_off_step: bool, ) -> Arc { Arc::new(DistanceFromStepCondition { distance, minimum_horizontal_accuracy, calculate_while_off_route, + calculate_while_off_step, }) } diff --git a/react-native/core/src/FerrostarCore.ts b/react-native/core/src/FerrostarCore.ts index 497e37acc..6a6267046 100644 --- a/react-native/core/src/FerrostarCore.ts +++ b/react-native/core/src/FerrostarCore.ts @@ -296,7 +296,7 @@ export class FerrostarCore implements LocationUpdateListener { } // If we're not recalculating a new route, we don't care about state changes. - if (RouteDeviation.OffRoute.instanceOf(newState.inner.deviation)) { + if (RouteDeviation.Deviation.instanceOf(newState.inner.deviation)) { // Check that the last automatic recalculation wasn't too recent. // We have to do some weird thing here with hrTime since JavaScript doesn't have a nice nanoseoncds method. const isGreaterThanMinimumTime = this._lastAutomaticRecalculation @@ -311,7 +311,7 @@ export class FerrostarCore implements LocationUpdateListener { const action = this.deviationHandler?.correctiveActionForDeviation( this, - newState.inner.deviation.inner.deviationFromRouteLine, + newState.inner.deviation.inner.kind, newState.inner.remainingWaypoints ) ?? CorrectiveAction.GetNewRoutes; @@ -331,7 +331,7 @@ export class FerrostarCore implements LocationUpdateListener { // Make sure we are still navigating and the new route is still relevant. if ( TripState.Navigating.instanceOf(state.tripState) && - RouteDeviation.OffRoute.instanceOf( + RouteDeviation.Deviation.instanceOf( state.tripState.inner.deviation ) ) { diff --git a/react-native/core/src/RouteDeviationHandler.ts b/react-native/core/src/RouteDeviationHandler.ts index c7a256bc6..b6a2bdd11 100644 --- a/react-native/core/src/RouteDeviationHandler.ts +++ b/react-native/core/src/RouteDeviationHandler.ts @@ -1,4 +1,7 @@ -import type { Waypoint } from '@stadiamaps/ferrostar-uniffi-react-native'; +import type { + DeviationKind, + Waypoint, +} from '@stadiamaps/ferrostar-uniffi-react-native'; import type { FerrostarCore } from './FerrostarCore'; export enum CorrectiveAction { @@ -9,7 +12,7 @@ export enum CorrectiveAction { export interface RouteDeviationHandler { correctiveActionForDeviation( core: FerrostarCore, - deviationInMeters: number, + deviation: DeviationKind, remainingWaypoints: Array ): CorrectiveAction; } From 87f222b363c767670f5b1ae7df8cf3381e91e023 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 09:49:47 +0900 Subject: [PATCH 02/13] Add comments around critical flow section --- common/ferrostar/src/deviation_detection.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/ferrostar/src/deviation_detection.rs b/common/ferrostar/src/deviation_detection.rs index e9b49f33d..12e0ef6eb 100644 --- a/common/ferrostar/src/deviation_detection.rs +++ b/common/ferrostar/src/deviation_detection.rs @@ -87,12 +87,14 @@ impl RouteDeviationTracking { remaining_steps, .. } => { + // Short-circuit in case the GPS is going wild (e.g. in a tunnel or deep urban canyon). if user_location.horizontal_accuracy > f64::from(*minimum_horizontal_accuracy) { return RouteDeviation::NoDeviation; } let user_point = Point::from(*user_location); + // No steps remain, so... ;) let Some(current_step) = remaining_steps.first() else { return RouteDeviation::NoDeviation; }; From a6d6396f25732cb488a5f9155a375b74b18134c4 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 09:51:56 +0900 Subject: [PATCH 03/13] Rename variant for clarity --- common/ferrostar/src/deviation_detection.rs | 27 ++++++++++++++----- .../src/navigation_controller/mod.rs | 7 ++++- .../step_advance/conditions.rs | 8 +++--- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/common/ferrostar/src/deviation_detection.rs b/common/ferrostar/src/deviation_detection.rs index 12e0ef6eb..8ded9eb66 100644 --- a/common/ferrostar/src/deviation_detection.rs +++ b/common/ferrostar/src/deviation_detection.rs @@ -114,14 +114,14 @@ impl RouteDeviationTracking { .unwrap_or(f64::MAX); if distance <= *max_acceptable_deviation { return RouteDeviation::Deviation { - kind: DeviationKind::OffStep { + kind: DeviationKind::OffStepOnRoute { deviation_from_step_line: current_step_distance, }, }; } } - // Not within threshold of any step — off route. + // Not within the distance threshold of *any* step, so we're off the route. RouteDeviation::Deviation { kind: DeviationKind::OffRoute { deviation_from_route_line: current_step_distance, @@ -147,7 +147,7 @@ pub enum DeviationKind { /// This can happen when the user takes a shortcut, GPS noise places them on a future step, /// or the route self-intersects. Step advance conditions can use this to limit advancement. #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] - OffStep { + OffStepOnRoute { /// The deviation from the current step line, in meters. deviation_from_step_line: f64, }, @@ -483,7 +483,7 @@ proptest! { prop_assert!(calculated <= max_acceptable_deviation); } } - RouteDeviation::Deviation { kind: DeviationKind::OffStep { .. } } => { + RouteDeviation::Deviation { kind: DeviationKind::OffStepOnRoute { .. } } => { // Cannot happen with a single-step route, but handle for exhaustiveness. prop_assert!(false, "OffStep should not occur with a single-step route"); } @@ -582,7 +582,12 @@ mod off_step_tests { let result = tracking.check_route_deviation(&route, &trip_state); assert!( - matches!(result, RouteDeviation::Deviation { kind: DeviationKind::OffStep { .. } }), + matches!( + result, + RouteDeviation::Deviation { + kind: DeviationKind::OffStepOnRoute { .. } + } + ), "Should detect OffStep when user is on a future step, got: {result:?}" ); } @@ -637,7 +642,12 @@ mod off_step_tests { let result = tracking.check_route_deviation(&route, &trip_state); assert!( - matches!(result, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } }), + matches!( + result, + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { .. } + } + ), "Should be OffRoute when user is not on any step, got: {result:?}" ); } @@ -667,7 +677,10 @@ mod off_step_tests { let result = tracking.check_route_deviation(&route, &trip_state); match result { RouteDeviation::Deviation { - kind: DeviationKind::OffStep { deviation_from_step_line }, + kind: + DeviationKind::OffStepOnRoute { + deviation_from_step_line, + }, } => { assert!( deviation_from_step_line > 0.0, diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index 99c897420..4c6a46b59 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -564,7 +564,12 @@ mod tests { // We used to encounter this with relative step advance on self-intersecting // routes, for example. OffStep is acceptable (on the route, just a different step). assert!( - !matches!(deviation, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } }), + !matches!( + deviation, + RouteDeviation::Deviation { + kind: DeviationKind::OffRoute { .. } + } + ), "User should never be off route during simulation, got: {deviation:?}" ); } diff --git a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs index f4a8ab6db..395595abd 100644 --- a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs +++ b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs @@ -1656,7 +1656,7 @@ mod off_step_tests { vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffStep { + kind: DeviationKind::OffStepOnRoute { deviation_from_step_line: 50.0, }, }, @@ -1683,7 +1683,7 @@ mod off_step_tests { vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffStep { + kind: DeviationKind::OffStepOnRoute { deviation_from_step_line: 50.0, }, }, @@ -1711,7 +1711,7 @@ mod off_step_tests { vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffStep { + kind: DeviationKind::OffStepOnRoute { deviation_from_step_line: 50.0, }, }, @@ -1766,7 +1766,7 @@ mod off_step_tests { vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffStep { + kind: DeviationKind::OffStepOnRoute { deviation_from_step_line: 50.0, }, }, From 4fb4477cd9567c3c53b8ce60da193b516b67d855 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 09:58:37 +0900 Subject: [PATCH 04/13] Semver bump --- Package.swift | 2 +- android/build.gradle | 2 +- common/Cargo.lock | 2 +- common/ferrostar/Cargo.toml | 2 +- react-native/core/package.json | 2 +- react-native/maplibreui/package.json | 2 +- react-native/package.json | 2 +- react-native/uniffi/package.json | 2 +- web/package-lock.json | 4 ++-- web/package.json | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Package.swift b/Package.swift index 2f290e788..3d3d3eb6b 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ if useLocalFramework { path: "./common/target/ios/libferrostar-rs.xcframework" ) } else { - let releaseTag = "0.49.0" + let releaseTag = "0.50.0" let releaseChecksum = "7b201e32a4e55ea127ccb9c72d8fdbf09540755471b7794de90ca369b10ed314" binaryTarget = .binaryTarget( name: "FerrostarCoreRS", diff --git a/android/build.gradle b/android/build.gradle index 88d09ec43..87e36efed 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -29,5 +29,5 @@ ext { allprojects { group = "com.stadiamaps.ferrostar" - version = "0.49.0" + version = "0.50.0" } diff --git a/common/Cargo.lock b/common/Cargo.lock index 3fb87fe5d..645737cb1 100644 --- a/common/Cargo.lock +++ b/common/Cargo.lock @@ -466,7 +466,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "ferrostar" -version = "0.49.0" +version = "0.50.0" dependencies = [ "android_logger", "assert-json-diff", diff --git a/common/ferrostar/Cargo.toml b/common/ferrostar/Cargo.toml index 1332b1ea8..b019a6a8d 100644 --- a/common/ferrostar/Cargo.toml +++ b/common/ferrostar/Cargo.toml @@ -2,7 +2,7 @@ lints.workspace = true [package] name = "ferrostar" -version = "0.49.0" +version = "0.50.0" readme = "README.md" description = "The core of modern turn-by-turn navigation." keywords = ["navigation", "routing", "valhalla", "osrm"] diff --git a/react-native/core/package.json b/react-native/core/package.json index 18b7b8c22..ced8ab7c5 100644 --- a/react-native/core/package.json +++ b/react-native/core/package.json @@ -1,6 +1,6 @@ { "name": "@stadiamaps/ferrostar-core-react-native", - "version": "0.49.0", + "version": "0.50.0", "description": "Ferrostar React Native Core", "main": "./lib/index.js", "types": "./src/index.ts", diff --git a/react-native/maplibreui/package.json b/react-native/maplibreui/package.json index 172fc6e13..2441d86d4 100644 --- a/react-native/maplibreui/package.json +++ b/react-native/maplibreui/package.json @@ -1,6 +1,6 @@ { "name": "@stadiamaps/ferrostar-maplibre-react-native", - "version": "0.49.0", + "version": "0.50.0", "description": "Ferrostar React Native MapLibre UI", "main": "./lib/index.js", "types": "./src/index.ts", diff --git a/react-native/package.json b/react-native/package.json index 67298a753..fe3116ab7 100644 --- a/react-native/package.json +++ b/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native-ferrostar", - "version": "0.49.0", + "version": "0.50.0", "description": "Ferrostar React Native", "private": true, "scripts": { diff --git a/react-native/uniffi/package.json b/react-native/uniffi/package.json index b262d1b57..cb622cacd 100644 --- a/react-native/uniffi/package.json +++ b/react-native/uniffi/package.json @@ -1,6 +1,6 @@ { "name": "@stadiamaps/ferrostar-uniffi-react-native", - "version": "0.49.0", + "version": "0.50.0", "description": "Ferrostar React Native Binding", "source": "./src/index.tsx", "main": "./lib/commonjs/index.js", diff --git a/web/package-lock.json b/web/package-lock.json index 812ee8871..23646e0ef 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "@stadiamaps/ferrostar-webcomponents", - "version": "0.49.0", + "version": "0.50.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@stadiamaps/ferrostar-webcomponents", - "version": "0.49.0", + "version": "0.50.0", "license": "BSD-3-Clause", "dependencies": { "@maptimy/platform-formatters": "^0.6.0", diff --git a/web/package.json b/web/package.json index 62883fcc9..4ee3df2a7 100644 --- a/web/package.json +++ b/web/package.json @@ -10,7 +10,7 @@ "type": "git", "url": "https://github.com/stadiamaps/ferrostar" }, - "version": "0.49.0", + "version": "0.50.0", "license": "BSD-3-Clause", "type": "module", "main": "./dist/ferrostar-webcomponents.js", From d31a6b54c32c385f8a6dbb7cc73698a7956bbcbc Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 10:14:34 +0900 Subject: [PATCH 05/13] Regen swift bindings --- apple/Sources/UniFFI/ferrostar.swift | 121 +++++++++++++++++++++++---- 1 file changed, 107 insertions(+), 14 deletions(-) diff --git a/apple/Sources/UniFFI/ferrostar.swift b/apple/Sources/UniFFI/ferrostar.swift index 20bea4fcb..8c8aaa2af 100644 --- a/apple/Sources/UniFFI/ferrostar.swift +++ b/apple/Sources/UniFFI/ferrostar.swift @@ -6921,6 +6921,97 @@ public func FfiConverterTypeCourseFiltering_lower(_ value: CourseFiltering) -> R } +// Note that we don't yet support `indirect` for enums. +// See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. +/** + * The kind of deviation from the expected route. + */ + +public enum DeviationKind: Equatable, Hashable, Codable { + + /** + * The user is off the current step, but still on the route polyline (on a future step). + * + * This can happen when the user takes a shortcut, GPS noise places them on a future step, + * or the route self-intersects. Step advance conditions can use this to limit advancement. + */ + case offStepOnRoute( + /** + * The deviation from the current step line, in meters. + */deviationFromStepLine: Double + ) + /** + * The user is off the expected route entirely (not within threshold of any remaining step). + */ + case offRoute( + /** + * The deviation from the route line, in meters. + */deviationFromRouteLine: Double + ) + + + + + +} + +#if compiler(>=6) +extension DeviationKind: Sendable {} +#endif + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public struct FfiConverterTypeDeviationKind: FfiConverterRustBuffer { + typealias SwiftType = DeviationKind + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DeviationKind { + let variant: Int32 = try readInt(&buf) + switch variant { + + case 1: return .offStepOnRoute(deviationFromStepLine: try FfiConverterDouble.read(from: &buf) + ) + + case 2: return .offRoute(deviationFromRouteLine: try FfiConverterDouble.read(from: &buf) + ) + + default: throw UniffiInternalError.unexpectedEnumCase + } + } + + public static func write(_ value: DeviationKind, into buf: inout [UInt8]) { + switch value { + + + case let .offStepOnRoute(deviationFromStepLine): + writeInt(&buf, Int32(1)) + FfiConverterDouble.write(deviationFromStepLine, into: &buf) + + + case let .offRoute(deviationFromRouteLine): + writeInt(&buf, Int32(2)) + FfiConverterDouble.write(deviationFromRouteLine, into: &buf) + + } + } +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeDeviationKind_lift(_ buf: RustBuffer) throws -> DeviationKind { + return try FfiConverterTypeDeviationKind.lift(buf) +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeDeviationKind_lower(_ value: DeviationKind) -> RustBuffer { + return FfiConverterTypeDeviationKind.lower(value) +} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. /** @@ -8134,12 +8225,12 @@ public enum RouteDeviation: Equatable, Hashable, Codable { */ case noDeviation /** - * The user is off the expected route. + * The user has deviated from the expected route. + * + * Check the [`DeviationKind`] to determine if the user is still on the route polyline + * (off the current step but on a future step) or off the route entirely. */ - case offRoute( - /** - * The deviation from the route line, in meters. - */deviationFromRouteLine: Double + case deviation(kind: DeviationKind ) @@ -8164,7 +8255,7 @@ public struct FfiConverterTypeRouteDeviation: FfiConverterRustBuffer { case 1: return .noDeviation - case 2: return .offRoute(deviationFromRouteLine: try FfiConverterDouble.read(from: &buf) + case 2: return .deviation(kind: try FfiConverterTypeDeviationKind.read(from: &buf) ) default: throw UniffiInternalError.unexpectedEnumCase @@ -8179,9 +8270,9 @@ public struct FfiConverterTypeRouteDeviation: FfiConverterRustBuffer { writeInt(&buf, Int32(1)) - case let .offRoute(deviationFromRouteLine): + case let .deviation(kind): writeInt(&buf, Int32(2)) - FfiConverterDouble.write(deviationFromRouteLine, into: &buf) + FfiConverterTypeDeviationKind.write(kind, into: &buf) } } @@ -8476,7 +8567,7 @@ public enum SerializableStepAdvanceCondition: Equatable, Hashable, Codable { case manual case distanceToEndOfStep(distance: UInt16, minimumHorizontalAccuracy: UInt16 ) - case distanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool + case distanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool, calculateWhileOffStep: Bool ) case distanceEntryExit(distanceToEndOfStep: UInt16, distanceAfterEndStep: UInt16, minimumHorizontalAccuracy: UInt16, hasReachedEndOfCurrentStep: Bool ) @@ -8512,7 +8603,7 @@ public struct FfiConverterTypeSerializableStepAdvanceCondition: FfiConverterRust case 2: return .distanceToEndOfStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf) ) - case 3: return .distanceFromStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), calculateWhileOffRoute: try FfiConverterBool.read(from: &buf) + case 3: return .distanceFromStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), calculateWhileOffRoute: try FfiConverterBool.read(from: &buf), calculateWhileOffStep: try FfiConverterBool.read(from: &buf) ) case 4: return .distanceEntryExit(distanceToEndOfStep: try FfiConverterUInt16.read(from: &buf), distanceAfterEndStep: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), hasReachedEndOfCurrentStep: try FfiConverterBool.read(from: &buf) @@ -8545,11 +8636,12 @@ public struct FfiConverterTypeSerializableStepAdvanceCondition: FfiConverterRust FfiConverterUInt16.write(minimumHorizontalAccuracy, into: &buf) - case let .distanceFromStep(distance,minimumHorizontalAccuracy,calculateWhileOffRoute): + case let .distanceFromStep(distance,minimumHorizontalAccuracy,calculateWhileOffRoute,calculateWhileOffStep): writeInt(&buf, Int32(3)) FfiConverterUInt16.write(distance, into: &buf) FfiConverterUInt16.write(minimumHorizontalAccuracy, into: &buf) FfiConverterBool.write(calculateWhileOffRoute, into: &buf) + FfiConverterBool.write(calculateWhileOffStep, into: &buf) case let .distanceEntryExit(distanceToEndOfStep,distanceAfterEndStep,minimumHorizontalAccuracy,hasReachedEndOfCurrentStep): @@ -10718,12 +10810,13 @@ public func stepAdvanceDistanceEntryAndSnappedExit(distanceToEndOfStep: UInt16, * This advances to the next step when the user is at least `distance` meters away _from_ any point on the current route step geometry. * Does not advance unless the reported location accuracy is `minimum_horizontal_accuracy` meters or better. */ -public func stepAdvanceDistanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool) -> StepAdvanceCondition { +public func stepAdvanceDistanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool, calculateWhileOffStep: Bool) -> StepAdvanceCondition { return try! FfiConverterTypeStepAdvanceCondition_lift(try! rustCall() { uniffi_ferrostar_fn_func_step_advance_distance_from_step( FfiConverterUInt16.lower(distance), FfiConverterUInt16.lower(minimumHorizontalAccuracy), - FfiConverterBool.lower(calculateWhileOffRoute),$0 + FfiConverterBool.lower(calculateWhileOffRoute), + FfiConverterBool.lower(calculateWhileOffStep),$0 ) }) } @@ -10903,7 +10996,7 @@ private let initializationResult: InitializationResult = { if (uniffi_ferrostar_checksum_func_step_advance_distance_entry_and_snapped_exit() != 17502) { return InitializationResult.apiChecksumMismatch } - if (uniffi_ferrostar_checksum_func_step_advance_distance_from_step() != 24638) { + if (uniffi_ferrostar_checksum_func_step_advance_distance_from_step() != 26349) { return InitializationResult.apiChecksumMismatch } if (uniffi_ferrostar_checksum_func_step_advance_distance_to_end_of_step() != 37822) { From 12105bf65ff5aa98073c2eb928c16bc017058d62 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 12:59:08 +0900 Subject: [PATCH 06/13] Refactor for better readability --- .../ferrostar/core/FerrostarCoreTest.kt | 5 +- .../LandscapeNavigationOverlayView.swift | 4 +- .../PortraitNavigationOverlayView.swift | 14 +- apple/Sources/UniFFI/ferrostar.swift | 148 ++++++++++-- .../FerrostarCoreTests.swift | 6 +- .../testCustomized.1.png | Bin 143894 -> 143849 bytes .../testCustomized.1.png | Bin 137521 -> 137559 bytes .../InnerGridViewTests/testFullView.1.png | Bin 121450 -> 121450 bytes common/ferrostar/src/deviation_detection.rs | 48 +++- .../src/navigation_controller/mod.rs | 16 +- .../step_advance/conditions.rs | 217 +++++++++++------- .../navigation_controller/step_advance/mod.rs | 30 +-- 12 files changed, 338 insertions(+), 150 deletions(-) diff --git a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt index a307b0bc5..63e733d7a 100644 --- a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt +++ b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt @@ -41,6 +41,7 @@ import uniffi.ferrostar.VisualInstructionContent import uniffi.ferrostar.Waypoint import uniffi.ferrostar.WaypointAdvanceMode import uniffi.ferrostar.WaypointKind +import uniffi.ferrostar.DeviationCalculationPolicy import uniffi.ferrostar.stepAdvanceDistanceFromStep import uniffi.ferrostar.stepAdvanceDistanceToEndOfStep import uniffi.ferrostar.stepAdvanceManual @@ -458,7 +459,7 @@ class FerrostarCoreTest { routes.first(), NavigationControllerConfig( WaypointAdvanceMode.WaypointWithinRange(100.0), - stepAdvanceDistanceFromStep(16u, 32u, true, true), + stepAdvanceDistanceFromStep(16u, 32u, DeviationCalculationPolicy.Always), stepAdvanceDistanceToEndOfStep(16u, 32u), routeDeviationTracking = RouteDeviationTracking.Custom( @@ -468,7 +469,7 @@ class FerrostarCoreTest { route: Route, tripState: TripState, ): RouteDeviation { - return RouteDeviation.Deviation(DeviationKind.OffRoute(42.0)) + return RouteDeviation.Deviation(DeviationKind.CompletelyOffRoute(42.0)) } }), CourseFiltering.RAW, diff --git a/apple/Sources/FerrostarMapLibreUI/Views/Overylays/LandscapeNavigationOverlayView.swift b/apple/Sources/FerrostarMapLibreUI/Views/Overylays/LandscapeNavigationOverlayView.swift index 342c10cb9..6a14eed99 100644 --- a/apple/Sources/FerrostarMapLibreUI/Views/Overylays/LandscapeNavigationOverlayView.swift +++ b/apple/Sources/FerrostarMapLibreUI/Views/Overylays/LandscapeNavigationOverlayView.swift @@ -68,7 +68,9 @@ struct LandscapeNavigationOverlayView: View { } } - if case .offRoute = navigationState?.currentDeviation { + // Show the off-route overlay if and only if the user is completely off the route + // (e.g. taking a quick shortcut and rejoining the route doesn't show the banner). + if case .deviation(kind: .completelyOffRoute) = navigationState?.currentDeviation { componentsConfig.getOffRouteView( navigationState, size: .constant(.zero) diff --git a/apple/Sources/FerrostarMapLibreUI/Views/Overylays/PortraitNavigationOverlayView.swift b/apple/Sources/FerrostarMapLibreUI/Views/Overylays/PortraitNavigationOverlayView.swift index c1720cece..ee0f72ad8 100644 --- a/apple/Sources/FerrostarMapLibreUI/Views/Overylays/PortraitNavigationOverlayView.swift +++ b/apple/Sources/FerrostarMapLibreUI/Views/Overylays/PortraitNavigationOverlayView.swift @@ -105,7 +105,7 @@ struct PortraitNavigationOverlayView: View { } .padding(.top, topPadding + 16) - if case .offRoute = navigationState?.currentDeviation { + if showOffRouteView { componentsConfig.getOffRouteView( navigationState, size: $offRouteViewSizeWhenNotExpanded @@ -120,12 +120,22 @@ struct PortraitNavigationOverlayView: View { } } + private var showOffRouteView: Bool { + // Show the off-route overlay if and only if the user is completely off the route + // (e.g. taking a quick shortcut and rejoining the route doesn't show the banner). + if case .deviation(kind: .completelyOffRoute) = navigationState?.currentDeviation { + true + } else { + false + } + } + private var topPadding: CGFloat { guard case .navigating = navigationState?.tripState else { return 0 } - if case .offRoute = navigationState?.currentDeviation { + if showOffRouteView { return offRouteViewSizeWhenNotExpanded.height } diff --git a/apple/Sources/UniFFI/ferrostar.swift b/apple/Sources/UniFFI/ferrostar.swift index 8c8aaa2af..e470fb36a 100644 --- a/apple/Sources/UniFFI/ferrostar.swift +++ b/apple/Sources/UniFFI/ferrostar.swift @@ -1007,31 +1007,31 @@ public func FfiConverterTypeDistanceEntryAndSnappedExitCondition_lower(_ value: /** - * Requires that the user be at least this far from the current route step. + * Advances once the user is at least [`Self::distance`] meters from the current step's polyline. * * This results in *delayed* advance, * but is more robust to spurious / unwanted step changes in scenarios including - * self-intersecting routes (sudden jump to the next step) + * self-intersecting routes (sudden jumps to the next step) * and pauses at intersections (advancing too soon before the maneuver is complete). * - * NOTE! This may be less robust to things like short steps, out and backs and U-turns, - * where this may eagerly exit a current step before the user has traversed it if the start - * the step within range of the end. + * NOTE! This may be less robust to things like short steps, out-and-backs, and U-turns, + * where this may eagerly exit a current step before the user has traversed it + * if the start of the step is within range of the end. */ public protocol DistanceFromStepConditionProtocol: AnyObject, Sendable { } /** - * Requires that the user be at least this far from the current route step. + * Advances once the user is at least [`Self::distance`] meters from the current step's polyline. * * This results in *delayed* advance, * but is more robust to spurious / unwanted step changes in scenarios including - * self-intersecting routes (sudden jump to the next step) + * self-intersecting routes (sudden jumps to the next step) * and pauses at intersections (advancing too soon before the maneuver is complete). * - * NOTE! This may be less robust to things like short steps, out and backs and U-turns, - * where this may eagerly exit a current step before the user has traversed it if the start - * the step within range of the end. + * NOTE! This may be less robust to things like short steps, out-and-backs, and U-turns, + * where this may eagerly exit a current step before the user has traversed it + * if the start of the step is within range of the end. */ open class DistanceFromStepCondition: DistanceFromStepConditionProtocol, @unchecked Sendable { fileprivate let handle: UInt64 @@ -6921,6 +6921,99 @@ public func FfiConverterTypeCourseFiltering_lower(_ value: CourseFiltering) -> R } +// Note that we don't yet support `indirect` for enums. +// See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. +/** + * Controls when a deviation-aware step-advance condition is allowed to evaluate, + * based on the user's current + * [`RouteDeviation`](crate::deviation_detection::RouteDeviation) status. + */ + +public enum DeviationCalculationPolicy: Equatable, Hashable, Codable { + + /** + * Always evaluate, regardless of deviation status. + */ + case always + /** + * Evaluate while the user is still somewhere on the route polyline + * (current step or any future step), + * but suspend if the user is completely off the route. + */ + case whileOnRoute + /** + * Evaluate only while the user is within an acceptable deviation of the current step's polyline. + * + * Suspend on any deviation + * (whether off-step-but-on-route, or completely off-route). + */ + case whileOnCurrentStep + + + + + +} + +#if compiler(>=6) +extension DeviationCalculationPolicy: Sendable {} +#endif + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public struct FfiConverterTypeDeviationCalculationPolicy: FfiConverterRustBuffer { + typealias SwiftType = DeviationCalculationPolicy + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DeviationCalculationPolicy { + let variant: Int32 = try readInt(&buf) + switch variant { + + case 1: return .always + + case 2: return .whileOnRoute + + case 3: return .whileOnCurrentStep + + default: throw UniffiInternalError.unexpectedEnumCase + } + } + + public static func write(_ value: DeviationCalculationPolicy, into buf: inout [UInt8]) { + switch value { + + + case .always: + writeInt(&buf, Int32(1)) + + + case .whileOnRoute: + writeInt(&buf, Int32(2)) + + + case .whileOnCurrentStep: + writeInt(&buf, Int32(3)) + + } + } +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeDeviationCalculationPolicy_lift(_ buf: RustBuffer) throws -> DeviationCalculationPolicy { + return try FfiConverterTypeDeviationCalculationPolicy.lift(buf) +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeDeviationCalculationPolicy_lower(_ value: DeviationCalculationPolicy) -> RustBuffer { + return FfiConverterTypeDeviationCalculationPolicy.lower(value) +} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. /** @@ -6941,9 +7034,11 @@ public enum DeviationKind: Equatable, Hashable, Codable { */deviationFromStepLine: Double ) /** - * The user is off the expected route entirely (not within threshold of any remaining step). + * The user is off the expected route entirely + * (not within threshold of any remaining step, + * neither the current one nor any future one). */ - case offRoute( + case completelyOffRoute( /** * The deviation from the route line, in meters. */deviationFromRouteLine: Double @@ -6972,7 +7067,7 @@ public struct FfiConverterTypeDeviationKind: FfiConverterRustBuffer { case 1: return .offStepOnRoute(deviationFromStepLine: try FfiConverterDouble.read(from: &buf) ) - case 2: return .offRoute(deviationFromRouteLine: try FfiConverterDouble.read(from: &buf) + case 2: return .completelyOffRoute(deviationFromRouteLine: try FfiConverterDouble.read(from: &buf) ) default: throw UniffiInternalError.unexpectedEnumCase @@ -6988,7 +7083,7 @@ public struct FfiConverterTypeDeviationKind: FfiConverterRustBuffer { FfiConverterDouble.write(deviationFromStepLine, into: &buf) - case let .offRoute(deviationFromRouteLine): + case let .completelyOffRoute(deviationFromRouteLine): writeInt(&buf, Int32(2)) FfiConverterDouble.write(deviationFromRouteLine, into: &buf) @@ -8567,7 +8662,7 @@ public enum SerializableStepAdvanceCondition: Equatable, Hashable, Codable { case manual case distanceToEndOfStep(distance: UInt16, minimumHorizontalAccuracy: UInt16 ) - case distanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool, calculateWhileOffStep: Bool + case distanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculationPolicy: DeviationCalculationPolicy ) case distanceEntryExit(distanceToEndOfStep: UInt16, distanceAfterEndStep: UInt16, minimumHorizontalAccuracy: UInt16, hasReachedEndOfCurrentStep: Bool ) @@ -8603,7 +8698,7 @@ public struct FfiConverterTypeSerializableStepAdvanceCondition: FfiConverterRust case 2: return .distanceToEndOfStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf) ) - case 3: return .distanceFromStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), calculateWhileOffRoute: try FfiConverterBool.read(from: &buf), calculateWhileOffStep: try FfiConverterBool.read(from: &buf) + case 3: return .distanceFromStep(distance: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), calculationPolicy: try FfiConverterTypeDeviationCalculationPolicy.read(from: &buf) ) case 4: return .distanceEntryExit(distanceToEndOfStep: try FfiConverterUInt16.read(from: &buf), distanceAfterEndStep: try FfiConverterUInt16.read(from: &buf), minimumHorizontalAccuracy: try FfiConverterUInt16.read(from: &buf), hasReachedEndOfCurrentStep: try FfiConverterBool.read(from: &buf) @@ -8636,12 +8731,11 @@ public struct FfiConverterTypeSerializableStepAdvanceCondition: FfiConverterRust FfiConverterUInt16.write(minimumHorizontalAccuracy, into: &buf) - case let .distanceFromStep(distance,minimumHorizontalAccuracy,calculateWhileOffRoute,calculateWhileOffStep): + case let .distanceFromStep(distance,minimumHorizontalAccuracy,calculationPolicy): writeInt(&buf, Int32(3)) FfiConverterUInt16.write(distance, into: &buf) FfiConverterUInt16.write(minimumHorizontalAccuracy, into: &buf) - FfiConverterBool.write(calculateWhileOffRoute, into: &buf) - FfiConverterBool.write(calculateWhileOffStep, into: &buf) + FfiConverterTypeDeviationCalculationPolicy.write(calculationPolicy, into: &buf) case let .distanceEntryExit(distanceToEndOfStep,distanceAfterEndStep,minimumHorizontalAccuracy,hasReachedEndOfCurrentStep): @@ -10807,16 +10901,20 @@ public func stepAdvanceDistanceEntryAndSnappedExit(distanceToEndOfStep: UInt16, /** * Convenience function for creating a [`DistanceFromStepCondition`]. * - * This advances to the next step when the user is at least `distance` meters away _from_ any point on the current route step geometry. - * Does not advance unless the reported location accuracy is `minimum_horizontal_accuracy` meters or better. + * This advances to the next step when the user is at least `distance` meters away from any point + * on the current route step geometry. + * Does not advance unless the reported location accuracy is `minimum_horizontal_accuracy` + * meters or better. + * + * `calculation_policy` controls when this condition is permitted to evaluate + * based on the user's current route deviation status. */ -public func stepAdvanceDistanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculateWhileOffRoute: Bool, calculateWhileOffStep: Bool) -> StepAdvanceCondition { +public func stepAdvanceDistanceFromStep(distance: UInt16, minimumHorizontalAccuracy: UInt16, calculationPolicy: DeviationCalculationPolicy) -> StepAdvanceCondition { return try! FfiConverterTypeStepAdvanceCondition_lift(try! rustCall() { uniffi_ferrostar_fn_func_step_advance_distance_from_step( FfiConverterUInt16.lower(distance), FfiConverterUInt16.lower(minimumHorizontalAccuracy), - FfiConverterBool.lower(calculateWhileOffRoute), - FfiConverterBool.lower(calculateWhileOffStep),$0 + FfiConverterTypeDeviationCalculationPolicy_lower(calculationPolicy),$0 ) }) } @@ -10996,7 +11094,7 @@ private let initializationResult: InitializationResult = { if (uniffi_ferrostar_checksum_func_step_advance_distance_entry_and_snapped_exit() != 17502) { return InitializationResult.apiChecksumMismatch } - if (uniffi_ferrostar_checksum_func_step_advance_distance_from_step() != 26349) { + if (uniffi_ferrostar_checksum_func_step_advance_distance_from_step() != 14034) { return InitializationResult.apiChecksumMismatch } if (uniffi_ferrostar_checksum_func_step_advance_distance_to_end_of_step() != 37822) { diff --git a/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift b/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift index 004b84628..a4aca8929 100644 --- a/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift +++ b/apple/Tests/FerrostarCoreTests/FerrostarCoreTests.swift @@ -370,10 +370,10 @@ final class FerrostarCoreTests: XCTestCase { correctiveActionForDeviation deviation: DeviationKind, remainingWaypoints waypoints: [Waypoint] ) -> CorrectiveAction { - if case let .offRoute(deviationFromRouteLine: meters) = deviation { + if case let .completelyOffRoute(deviationFromRouteLine: meters) = deviation { XCTAssertEqual(meters, 42) } else { - XCTFail("Expected offRoute deviation") + XCTFail("Expected completelyOffRoute deviation") } routeDeviationCallbackExp.fulfill() return .getNewRoutes(waypoints: waypoints) @@ -416,7 +416,7 @@ final class FerrostarCoreTests: XCTestCase { arrivalStepAdvanceCondition: stepAdvanceDistanceToEndOfStep(distance: 10, minimumHorizontalAccuracy: 32), routeDeviationTracking: .custom(detector: { _, _ in // Pretend that the user is always off route - .offRoute(deviationFromRouteLine: 42) + .deviation(kind: .completelyOffRoute(deviationFromRouteLine: 42)) }), snappedLocationCourseFiltering: .raw ) diff --git a/apple/Tests/FerrostarMapLibreUITests/Views/__Snapshots__/LandscapeNavigationViewTests/testCustomized.1.png b/apple/Tests/FerrostarMapLibreUITests/Views/__Snapshots__/LandscapeNavigationViewTests/testCustomized.1.png index e1a775deb697c20c860689e6ac00b07153a4416b..eb5cd7dcd92ee822557b4ad1c93f4d0f14619bb7 100644 GIT binary patch delta 90512 zcmYhicRZVa)IR<(Yb2;GC{eT3+IxjmOYPAbtr66!y+=tEF^e{4tx#L-+C^e(2`)oRr~*J1dh7H`GRFSIYzKR&zI0S(RSz z!A$}N8i^I#g%ftw+5gyW+}l}te2IgUA1r-YE1oIzC~2D5-P~Ng`g1l`h?}1=GxOej zHh1#-Y|=CC2JSS}lY!DYMP!RKfu*TqVpJ12xbUw z6TKz?rR0nd+^5p@BqbAnUHx14{bw$RaI^?H6pbYyNol`Lc$YJwI3(%OT8XJSna0>7 z<2NuOSIx9m5%*t{y-~yNzoZf9B?3;GL~BfPCxwaAGa2hn&lKcd*krBL}}fr{nPn-&o% z*AoN+cVIWf6CPD5?MuXomnQiO0*ClIS+Rd2XSI*f$7y16h+0LSP|$7hutx$X=3<+c zNYHRsipQuVSLiLdg~rOPJ=m~@VM1U;d^Gsy<%VKN?=V{Ri5lw0Y?bI@L)_p^ZbTs{ z(je2y;Ri0y2|~?}%oqk`Pk8{Z;lJr<^kUg+PE0 zGX%D|WyLS{RW}Owx-CJuzX|SNbKd8?4ltJrLCGSmOYB}b$qAsLY#eA^Qeu`wJI)$T zI12$vFqCxsxseGpB9@RUgL?iD4W+(&Ka-`8yH8goGH2y$`x0+$?gx#i(PxSD9(|m% zu*w{TDHtYaXg>Azmez{!t=JnW$`b@ofkz^`Z)xD0|G_2Tl=)wL`Z4g$*F;OG>JEKk z2$^^yNzunw(v{g4Tw%b~a0=<(Bl5q&LL0&Sn2bhHX)N#0^T(SM?}S$p?%=;6uSqNuhr5cU+$*$LQiYF4!9 z5F)NSOQii2V%+O}396A$$*;O9_K2S$G9?-Ld6);9Sg7P;!jp!aSWEcFYz=e^(;bNt zC(NcYDsqFnnoKy6?rGnz#wbGSRbn=)4scXK9_N(qU&RNQoPJl$w^^x(>yA^{ z{>deE$2sA}P*fxp=v(KF8t+G_$M?UrO5qCxBx)})(xKY2ApsF zX?zV|OLye^e!|odD33QFmT=|{IpGHpO#S3{Z4PEnzrx-6pyG=(BP~$ph8%r%R!0d; zf=@G<_{v33;_-h6ej~5YdP7_S_H0BF>^5W@T{LV~WYoeBNNJ8Yv_by&Z)S4j!l}9m zBE*+S-++H+)Znj1-9uP6O1Lw+(g8f;WkW_L$_*9?Lor#YP-+|x=_ft6g402jBNh|j z9d2;gBx*1e43yF5xJ?-vRSYyjsvv;0qs|V^X2r&WPga;P)*YO84<;8MpJtv*tBk5v z0YM2+Q`nAM>`r|iQRI)qNZAPqsdyq-$s}zU6S%N23{*_>6`AiWH6l)-_ZARb4h3S? zKG{KCp9H9$6zbOoceJbsF)_1BCnY%{Wz5N-;i_Pi%1tOD;%h>v&|(7jER8fzxX^5Z zLobR7TNd)K^i5zSpgbxuo2ev3V@1NQP#xb!4-JzQ8Av!RjEOd!!DmYsE}-#7_<{W* zlygOw-YpU=#hv=T!&ja#6bv1W_!R5@Zo)(%Jf2M4aPe(%)_;{{?dmc;;qL8d#7#~G z{$AKLm#5(mSuG>fUu9BPDbyGg_4+@!yVF(!ONmjk_F@fG@{0qXHMI?^)K6+$87bG6L+n^SZO3qvaw3#zd& z7ulz_Gub3``0AxXw>aU3eE2IE+3%>8D=3vu{)&Atk`T(^7D*xHSCH4oKc!3Wm|&e< z_Y58y1{90Ue$NBba*+`abd@X%8bb`CE++j05_>?xk|!2gf48#=y$GTgc?`ZUIIU== zdN03R>i!DNR6A5~)>2D-iCnU8%5;fz&x^h{E`B3-Y5rVRlAeTB))LK0Eoi_(T1_TK zY!+f+h}9lXf-3ecrak3CMCKGxhB8>G(TYY=2uLf42ig2$03f^QeClH@y94?6LHNRYWDg?p4`<1367`c4RlD(eT^J4kTo@Gf zbzeoz7_l_rP?EtTPJENbFOtGMES$BULXw+IqEEz2PNHuN>fVkL2R>JN4EC=DIAe&3 zqB=oMr(Z;E)JM|VEoSQ|7v_cGY09JviL_ZRAaWH@)_-uA8&tfq@Rg8r)-t)#Z!4 z5Bzt@mPC{$LPY8@od{*pv*1nP(C3X7#v{Zmd6-?ssj^(0l~|C9aRQXLYmr=74fd5n zgg%^!kdTt{@5!AiV$|(dh#P^=E^#;M-N-1U!n~cyC?p$lNP`5ElW#h$+v9TrDF8C$ z9&~F^|Jm($J$}a9$5~&6AQkw)l$@uG!nlBx!-I4Vlmx#nQVJ2H7$tS|D7li8wG0f$ zXpf$+*%2V3axtL{9%Pi##BW1bU8W@9Y3_$%tQ5-c^4duQqiJwc)4j8M?RCFqPe^QX z--xSUPN?)n!{E_U1*X!LPVgWSod2yweSE~3x-mwh{$x~gdgVb%*q=5}@jl?V};>6v9A$z6uF%d|C0-g6hjlr_ti3-X(WvC!whdRx5fwWfHzc6``W?M#<*o4SN_e z{6I!2M(pzLp8}Ou35m8cx`x_MbQk+}~@VpOWrX^)2?4)?<6`7O4 z!%2LT!H-5}4GfgQoB2jYD2jR@q z2ENpNbKLzB0gzM2y7)!CQMda%(R&e zO^UocIyQ|_nqAzRPLQ3d3~G8`RUaQNqxjpev7J-}tlEBu5KIh-*4@vUN#$tz-*9mt z)od~P2+}lC%f>WD&Q)T|_vg{8J_oZ@q74YtJ%c1K1~*yJzOpRy+!qFjs={Ql zjULMz|E;vngtu>gUEFB0^fpedIlsdb<7H;=kY4iC=|hFfw0C9`Zr#~&^!CfK6QsA= z<#D4$v5|R@YWO8O`hxOaeL`)C+!g-4+_3^tJRbrsP1q9a?Pcg-F_No+o^&=Z)^;mZDq6Q zdK}2b2$dQKx+*8R;tZXM%Av8c54L#ewfbJQR<*OJ zR=Cqk`vz#qOSon)Da$iEf!M~;D&-rjtlKVNAEvht40ID|9fjv$f1O)U|1XRp=|Nqj z5W)@+txF_@cfM{%36{N93v)~s*v*qD;onMj$C zkg`x1JU)ekG^8Yp<>Kc{Zk<(dq@>IAU7l5cuimMq)>|UI_LDYa-L`}y*fNXxDMo!$ zbwf3G5Gr5~O|E7M?$kG2Ukuno$@`2mAss4U#hRZ-X~-54QOAaiWzq(KE3xd@qMwt z#%$5Ug#M9z%R0^mbF&jP!t&MRFFo145eZJG0P?wa$`pq_OoV)cmcBMvgU8RCT?)>J zIu~?>S}#=cMM)%T%zr-mY4p>s(6f_>E{WZ#vbUdHqK|nq4t(fcNC`xwc4LZWtPJ{% zo}OJ{4DVG4AieyEszOj8Suw%MQ7u6^%VgTZw8-^AUGeTPDp57)To_AqlPEVx^m+Y@ zcjpIU)Z>~{oO|GRK`A0?>`wbyaJ{iIWgR7ijxs`reZ*9Hs4RdY+Cv3wHDuPG7R*&( z0MGBxA%>i~ZSHeuC&@M%3l%>B0qzO&SHLX+OcAsKBOOwggY+@ESl<|3RxvM?R58Ou z^(=jS*&B}u1WI+L@UGpDQB7$C>D)U+PTO60j#wz2Ex#9af;OSLtmtgR*7Bwi(ob~n z0`|Q%D>gh2>4#@!|{}Eb` zRRC$tT$Co zoJ4i0!CzKlefduBl;UsgdQ{~GUss%Y@~%MoT*K12vUXaFglxkEs>?Y zeqq<|Hnm4p-rjWFMYZ6hDzr!<(6=R~+DYjE2_s@ra49?o8T?D3qrN;>n+K^M%un3;0+Bc&>{~$Q@e8qOmbLKulN?KofU?1F~G z=?D;{QrJpQ)U!`@g&+8(1}i;0V*(CVnLPLx4r!Hv#}?}4EY%GK@VSg!LOKLhqzli{ zP%F_5_2Q~xy!OB8d+WtbM^5b52!n`oxBg#w2=+6c+bl18Ab3nek7q+}K4y*->^cX4 zq^mZj=`NL&09u!mRpzu~{)w`LPpeV*%>?Ur++&Mg4v`yUme0s3B&5wCT^}kmLW!Mz zsepUxJzt&)QHb|7(uy2CU|hSO;tn{_u2=-<0fS{`_8B1

LHPG~=1=S&m#W!kxSd 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

_OiGTX3qT=$4Ssodf`W$~EwtKNOlSIcR~w0{6# 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 z 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 delta 90637 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 diff --git a/apple/Tests/FerrostarMapLibreUITests/Views/__Snapshots__/PortraitNavigationViewTests/testCustomized.1.png b/apple/Tests/FerrostarMapLibreUITests/Views/__Snapshots__/PortraitNavigationViewTests/testCustomized.1.png index 2eee87cac46be2487e20bad9df2bba8b5ea3d97b..cdaca50a1a56c9c864f50d90e6426e7485b6ae30 100644 GIT binary patch literal 137559 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 AN77?3yM9PXr=icEJQ8!8NqTK-ZbCZH?gl+ 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%0DjNp|7nUUg*14eoDJNQ=Au!X z)g@PY?PTg@yetXkx9PeGr9n1u#+wdg` zjc!=PJrd&B{Py;n{crK2eof}WDncxrT&huFpT9|T8)bcrd~TO!T|CzoDYz)?oPeNs^e?X@&yfh1_T1=x`U= z1ck`ksXIbE?~VP+Sn}btNi>)GK*Fj(u%GE7I5Anb^5U=5cF)otqX~G&k?;MkISc7A z&X=i@Qbg>i-@Kq}fPMt}-l@>?3qfVO3gsJQ zG5>UFzkyUB(?Bn|4wwr}j?3_fcmneH-Y)ffHFI++?p2P&_e93yVymlHd*p^QE8>!# z*dKO=hg<}V35T|janb$Y@PKBuEJVs1B&NQaUioM!i(I;{Wjm}8e}j7=Vt|mKVFSzD3OT*F{T36 ziives_2^n_C;MNz4bheX=4Y~s%-RbDn5-V^Wp~Tqu5rCuXPy2)(Q)Y8L_)uJFs&gh z3)TO|dy2cq>*Vs20y4H3Rp1H z|7F2U-@dfsVRg~LJW|qn=zrUhK1QRd5iU@f?z3vkb#J#3Au}x9FmXDj_@E@R@5QmF z@FcBI{kwvn%&OQe`&?m4x0&|Zm4k)|=iQ6*Jk^=SQ`t0sUIyrwN#}&7a%p_%`_3!7ZVh(1JmpggCQV@p3}cF&~#m?fFNl7PrL^o+0F?mA4ut ze^=-^0yH!;)gAkJl0QUj`qEzEd^`(ThkIq7&jGNA8GQKCspA?zMumi@v(ND_h+SfF zo_~2!spk^Y$8p}NXqC^2&A?m?WJe?P&LddZlWkm;eH)$F#z zz%V-nmx-_3pLJmVUN3b;GgH!EaK1BC%AR~x4i|_#0rBbkDi!3bbQY=_YsJfQWz)P( zk9v*y=&9St!h9Cz#V#5AUeW9uGL6r9*MQ6v^Tl-GuUrFHC!YbY3r41AA)n)3 z9Up-UOvP$g&6{_c_)#RZ$?D~t}(bq(n=4>q&9onL?P+X0n>$5IYGzwPiFb~>%S zi#juNySQUlM7VfoUPAIs9~BzyCikYDG+R#OirCqPN;1#=vJ2+`ZO$jZ1Vcw9%*yKO zTuFjg>`gVSL2>E)0m6l;*qf#62MF`4zmwb|;tcFO9ls9R?`)8Z1F=@V+h1ok)>reG zhcI5f3zo5gL%yiR6ge-~?Hy)sRpLggT#58|58~q3>d2HDf9uyr#J85M{H?{7#EK&6 zwR40Xa?|>1Xo;I4G&aq!hp_c|W+J1db6&}Wwv<4eFQp8*Ee7SfwD ztWDDb?|)f{=zANG$UNj&H3^QH62uHRzZdYflfB&0LezsDMf#|D~~7<4IVacP{hlBE&ORi`h}rW zm|5;P^j?DL4FqteejvKOpI%ZF6e=(-JW=Z{_R_}^mPLp*IR|ZV{aBRY)s;z|bt)`Y zpEfW(D>vyO)_kzKzfQw7y7zO*^&4i|^Fk*J%o_NZ$nhX!d&z_p_j%~G0>{mlpq0lG zBXH!F&sCA5U`3i=HoM$3HtNK+1MT)r`aH@JJp#jFV}t0F)grLikdr>~-LOyPG22bU zdCf2v=v)yy#N<&-eo2kPqu?)ivtBWw8nk@FBI8<}z!_HLYmTR}!R}|xU+AP%vPYk~ z#R4HHw}kY2em?hOA2d*)3h@N_2yo1l90 zCPPn|;%$S3*_&Xlr^7+Ivo!1Xlha2JHw9;AIK9bG4^bzJu>8(ySRk zR=`yn`BGE6TNzo)$28C)&>jNnD^WQL9(yLfcefu~hbrn>ds(4{0mvC_L~_78W@t{c zHH3}L32+q%u9y0zN{O?}3c#IB++NNo+juLM_lB7`3?ifZz@4T?qWZvs6Vw#-5<}w4 zN99G87hjR0OwQI8vo3O>op_OzI+t+ac!rXSnj8Van1aqnYWR)H)-tyqIUXyCfQeMX zrNSG?yrM=&7CwOcj8e^3%SUF-sPfUwel{q|Uu%)@mLn#n)kuAwNy~S2;oy)F0rEvM zZbpaBB6bF6AKx*IBDB%d(R=NXOHkwm%PG4gF$Wv8nhAmTFtXB)5v|sEfZfywpY{6< zBM4grhm6q0v%4!-t^)#n<-Y{l(#Xaty)VEdEgoEtHr}asLs%$L&%Z8dveRZ}Gr>IL zrp`tdKcW&cp>>ByG6C+3XgZ6MTkG`eMSKGAgxa>@2k+z}IdH4e!Yq6eLS~CX_ugf< zjYKrGlkZ)2*JmH*rpGnK{jgB-seajLW4!(zZF`q|T>CagUY!<(ny~uBKV*ld7ToO% zGXWN&ko&-M;e1kAAjLjRFMrAesXPvxFw25A=tCPoBL4*A^==b{#~z;O&C+ui#wM;@Gjq z=({)AmK};K$rS^D1E$mtcavw?DPt!m{hR3}k~O6sntVNv3*Jg$jsy?0{Jj=x3dHa6Jp z&fIADA-LBd;@9EYP1e(A0W%QKGxja^{gI$jvaEjJ^dJN}7P(?u0Chb|_gLjET)(dtxwHI1SY_S|SQBsqxmCvbUt(lyWCMr9 zcQI%-ku+N@4N+^KW4q9!hixoiO{UeH;!UmA4A7DS^=>cAR0tu-#0&}iWmfzIL;EO2 zo$_fBr<*fZ?pWMTd5>Kt6LP8T{4NOU8!T4HgX7#?=~Q?43S=COGfi&R(`I5u7BHL0 zWF11fl-!2L*J=PJ?rs>!STcO$LVa`GJ6@$-f<5CZyy+HY&TxItcuAtqC57M}8@QHdG$KoW&S-0)7<~NLhip z9;3Tkz=nILWX~Mp>&^ou8M-yf6elG6`Vg~Qv0uHa8p|_FHhO$Zy=ImOL*yY8S&b-$ zAc@(SUfi^6ZTu5@)KXd6A0gS=m{0oKCoFER ze4atmCd-l!QCK=5#H=GN7U!-DxDPHwES4`_ikM5@y{bNIKxtrhL9Bj~OV%Ho+d{0^ zqg8mJ1*gX>$6;fIW3chUaoMr*FEl_Tw6Spy@-`VuMB&Bot-eumQ#qwHWT#N7Y1OCqLkufRfIAZ?EXh7v9pqQW?3Q)CC0e0$=- zA(}=H0VB=E>jYs#mS}xza*AV@chYy}DWHuRQ|jAdKNQrip;4gnwQR`c>o9t5v?*W| z&5RqXnihm0_bzPQX~%fi&$v9Zrhi;8w8cz3p;p631=$x@=klHi?I=<0->dLDK>Lqu2-nu9tc> z!qidUl_uUGR$qyeH|j21rip9tlyup;TZDE=NX?rHfy7!3HBHHq9BG${-WAB>2+#`Y z{(lLgkj81&?s-K)$pQ{p)uEZ+USAM~ZU%#GEW~PPmvbspV3IXB(pVgw`FmeqcwjA# z((8E66MqMCf_4B{h*ZdI7)wGK@>f;uW}Va>ui6!fo&tkNEhgfR%%+=-cnVlrgd<1a zxyJL{d$>oJ47n?Z3+KjnzE!%j@c+<Y6}U&Kp=7 zsFkG_G%jn!NgWCdD|t|}czR9$YRn&&B6?W^w(hlJ458`91=*fVK_pE0diI16I5_#5 zs;fHePL>trIc_RW@GzTMh_K1|)y7Rzd)Q<1$QS+>e zo8DDbKO-%+Tt6i|QlFkNUZ^C6OT0-vk1^?kxOY? z|B14H?|Im-xBl#R^(+(@PGEo*tYmB#0!xGdGCQ(;dRIMS^t<__5`wF;qerlDL^@VM zg$JX*=;o+@u4mWt{}rD#L(}QNQ{vFt2D?)w zIONbg677E@=LB7drpcy-cxV!#r;x*IAWr0EPD$~uDuaoytB1KS$om)2(BT{pOvcvo1`eeyo6l00KgXFf`%%(% z?n1wJs_)`q{UoY=5gNPdbBw0MfS$8z*>%q+&5f>2%i&i`V{4bXo^e zvZP`J$p7WCKw-OF=%Imf_L4ALs=cOm(A2%;;f{@%qC63=6t`FSq!up0Ue$N5XOwUX z>>=a%euxJ-0kjA$wZ({r2OcXPY-t0BkJ!T_ATXq}H_f z4YnpU#PLUn=C=k(4+l-idjoR*2H0?Px3-^fIVNH_&-qSMB`8p}fbHQsCGQSHSksXn z^9#Nco&syemk);S>ITyf#OQ7lU%$&0=#i*3^R>LTY0gV<%|bHt|;GZgCB! zg7CyzhQgNx4RdR~a^G8zg8`%YkGv4t`-H|`37#%!C9LPpOUDM;wBx~ zKAp!Q9d#bfc&_`9-x}YeMf(L8d$%Ab_)B-SyRoaKQ$2Ix*gVfS4HKpUS!~m23$b7y z3&D8^3mwZbAv@hYN%~GrH!FQLi2Oy8#>Mh9;X&$&Vuu2wh3~7xCXum~XeixTwucrH zQQ+lDq(`5T;n#CbuG%Fli1Z2NcU6TtCobjl)&^A02ZVq?X+j|>R4I-B6c0!ov@R5E zV<~psx%Yy2);SR;j1HZ7bqPF(U!T6Jx?hLB8cbcIMUF0nd1FO1Q>0rMRXlqpwy)_E zTh5^$>51b3o9kzc*8v$9U~7Hu4$7Ok?*T%V*V@|Uc3@BZ2b+GQp`jszOJ{S%Y_*lO zwB1A$XVtnaAzL^k~~HwnpAh+%4^Ig*9oq= zcz9p!DNEN#HhicDk$GUwk}Ep?RZ!r?YaCGGqE9hiJ~46S!TE?Aww6C_AH-DLlTc+vc^o#Hq~j&SczR4CYU+!pOsD|SP_p`F zu;>HJ*9?$P{vQAbt!27$bJ2-fr$giCEpbbE`;G&| zuFd`!gH3fsxtti#Wkt+XNRiH6m5$A2R!EsYBj_|Azz9`#dmU7lw**2m#n-k`$rt}K zD+6gkik3$hpoJ5f>y<8jJO*DE?QgYW4TiE!JZQYhw4`-yI{z@z>{3r{fQ-F;r|IDO zARP-crzAY#s}PCE1egSNNJEdJQZ0W}e!iZennK}Fw%cC;zh9<_QEqSEgwbnre-{Gx zWC2y~DEN|m)(a%%0O;mBCAhbJzqlL;BP3bg3+YxoSjbz*Mq4h*qc1U!3TZDM*Dad1>h}X{qq$eqUfA8QvK)Wg6kWpz| zZFgGtef67hNs!nerq#Qb?O?vI?^cmAmc2;}f<*d^SEX1Ad_DuYGs48WxfO8#VY1D~ z#9zM#P*B)8@qF)t!&EKb?{lL_;xy65^$UcMH~fUFX7W6GakGa)y>^cyc>tHkFqf8v z5$!Q|i^=ZsV)IXNf3ocs2uMSE&(C~fFJyXU^cF6^=psWHAr#*$v3T!p{@&xF2uQ5- zrc!k=cfHh|v0GaK9ZtckgQqbG1r|w?NYy(${OayIcG=Z^qJf3)4SUz-ZL{0w}(osIAQ?jRELo zY#J;X&HQ{yhl=kk&d>SF=`GMUASb@&T=iFi^YqwhwZ>$E=*|6oPcpa$9bl2uT*U5p z25xAaWi|mJIjka<)E7iA{FgkkwaMd{t z8$ek*%}Td*;v@E*Pg&W{aYJa+U`S4$K{Ea37tf%b`u`4yy zlII}`mr_scBx9Q?);$sbC6*2!X!)*5>$M@NDJa7QWWj{%2?oXL*A&GAK4R0r$d=ll z;l6;w6tMUbaL8%f7L! z81qva|M<4Iwlx2lb^XDPR~GVC&n|-_uk^V_i_1u1F69L zTk}St<2=6}OQ5arz<1w-TK-9ff){VI*|Ld`y`4xiyRbD=s4Ls=BVm16#F4G17_4-{=*BW`={(7u^b=g;!eRcVV z(FN@I4{NcnF8ki)7pJ%HUG}{T5W@T#RPIT~elWHdi|z+w`@z^h+~|Jp@^7izzPjwI z%f7n&UAK_mPxb$$G_;@U?^nk5D`S5Zy7nt$|5_N_FC_05l7D^u*jJZ*b@>NU_t!_X z{dbrBcbENV%D-Wx`_GjB_DZ||Ou7H6|98?3eA-u+eRcV@^Hjq%auNI)rY5Ox*y$S=Len~&<8(&uSaQEpjYjxmHBD#Pvot{SHe{I2gkifEy5GT{D(k4 zhemRM%*qWNb%zRs9Q6L^ZMKzlqzQC49fg${|Lm2ABJp30tx7{5r5;Ebtq~Iv7W|q$ zzB}I zHwS&TSE&XTWyx-3-IQId*SFPT?8HD8so%x&tIb0= zO?0WNc*5$A!>AY6n{BUtLP<5dII`sWsiP=rOS#k%-$EAz%ecclai(n4v0O~V4tK43 zZ)!nYyTcf*s|VAXTW*}Q+)8ug;(J-6ZLk%!*@`;X#IongXN(>j>18)-*+}=35ZO7dviW*AKBonu86N#NY0V@rLM--JPl7!lf zHixfsh*)%SL!$*es|XA&1F@z3DL7>g5o-Yn5_VtgHIm)eK6u4qGEacWy&C1dX;Ny% zy6kgdx(hpngT~q3J^q^*J(buwH}{0w#A%XB@li+IHT$zi!5(u??6Hc~6FF2L-24@a z%Ks3SfuXq4$tiAvQu!78_wymL9v$T2Sa%wXZ5gToi=7YTA_NY5Y_CG)9NpRDQ&J8E z#+9uNs7vgc%AJM+-~5=7mCucgS(U^XyX!%bxJGw#Rt8oz?+e0Akpq$~hH42zO*MW! zlv@4nn@Ei3+HGPy)vSX+y~|C&AP65wL%Aqtv0>8=pW1cHq1EPY>R_7Bw+|#Jx-xAT zD=?Ex*3VQkSg8&~_#=Ya7%E4zhfO-lR-XhSb`uOR*}Dk<`NCfy8}+H#rQu~_(k($Ge^A1(dybFfD-3%$hzv8J4exx`<}e10Hz>kyS2eR?Tf>$^t%hX;l5eos zQ&UriE7aV8HU`s;4EC?qqzvktg*EXrtbD*w96jnSAAR28Uzw`ULc9adx z@!5-%EzSW1--?_w?(v56H5qjnpZ?woG{wKX~nobLl6F z8V{SQCK3zBrl_6js>PPR_zzw)^lHUaN>+7lBP3HUd68}{L{4bNL}|Gv4bSVoahJ%B zeW+O7tL(@Iabd@!WvPwXk&B0iy(W1}&#uPNBi5U46WM*&=PMG8XJV5@X2z(sDj$5# zQBzUD1H0rjwc;s6>j$rTCN6z8q6uNubZ-5D9L9Is1@rU@RgUzUnUw><1r8HgmcE@nCYprw~1t$hg5xA9#nY$mecC#ECjdif-mR$Ut#qb8{E9Y~=}U_XLg zYOW>+Z#6yK!!GUPQU=fOruJ<~;x?d5K83!4C6H(V;-+JaTm{s{b9TYp%6b zku^3U-ynhP!fuG-7OBDQ#QOHn&TR#Y@kclgw%*tsVv)s+68mzoM=K_X55I={H`6V- z5r`{pMZ0=>h#JzuCTTatO`o!j#*Q+784@1OExNX(!y?YN7akZXR|i8O0QG$Js{8gcN(x4(VFS1b%`=}D+`Z5RgEuQBKD=ELx@tOERiXOeQJ3VUrwz;c%D&0VlWG&xXUZPOZVIm zXgU*2Hlz0@7%Vt2t;-Hr+12bo2{qh<9YWN0KU?@jc?ySG$gTuCR&sJ!1pK6$6tvVs z&XNB9^lHSoMlLq)D^nU`5gX(C9g0ICJb1}-?qwSYSoygVt7Oy+f?U2-xVyF@^_9A` zvT-BZ?f)tozLR%07oveaGj9eH&(54Ze92 zhnB^Mp{!!#F~)y|ZDcX=)}59vF&^}s0wO+SXXi?3Je3ltUQF~(n{Z)7aRIBjRf?ss zq`uEAV4B)6mSzZ3|%)fcD%~gwtRpw<=l-*{BrAc1)WK_%j)B+ z3T}^mO4(hfCd?c1Cn6U|Z5P*kHbar(i}E_^6FVG+Uv_pIO~drBjcr{t@1wZvQd_sC z3-qC5Mj3**lc#qYqjE2RD7*BzSdF5nB`8L5WG2G)QC@9`294IxggX8sku!o3fG5?L3qeiWOy1GG2P$7?({*UlqmkO>MXV2fIy)-mZI(-B;{9zrj$Y5v~ zAht%%SQb1jIy6X6Z@{c+hIeIxlm`zG3pvk6iM^SSOno=J*}LMuQ7g!3GEB;ce+}0R zwj+snZp95x()HL)U0rnAJT}s+jYrzOh;=fYkfaP3(wG-I3Dlv(#)9se&RwM#&Of}@ zt@$;4{8Ejbq$zaOm>0L}KkT(JMQL}Iv6nhOQ$6 zhe#b%lcu1>&tOhN4NY75EzU|W+Qg`DW)b zmo3Umbx3jaiOy(J6<@2*7MC4rU?<+*@N9&;zuuaK@X!bz^uh`2SY~^LT8!Vlgpxcb zx-)mdwPd@FXjqOd0(|BIzu0au5L7@X*ohpCtuinHU(;sgU3wLKsvO^n%b^!wz&y0#LoQ4 zt7;Vgu>El`ny$f#JZHPu==rIv{0<;$+x=N!@JSYvM;R2!2;tMVUJJ1sKJ8dHzSRve zkpBRuepVzsc5StIKDUQ*;AP_u)BsEM;-h*WY8Vw-A^)2tq!HS^C=FAyhAHo0UTl&yq@g`w5o;&Bpc zI=zU}m5o%wkuligqhQk#GFMAx+H#xUv@s-KcpSYFJO?R3CBMnk?=i(*rQaCj+u0zF6#RjO`Mxlw@3rYfUOENqK-3X~s?pqfB4ag_RwjlPW@DB_5 zevk;;ttWbHGCrNAvXgBL!gnbMFSm32st<;b73pzu9u0cVbCA>S=vc$M^Y2EUKR=Nk z#Cz}{F5t!?EfK-s_P8QtVJ^P+Tzu`0AuOh$T#oe?Y^o|ET_$A4Ro zD0IqHe_&5co}Kk1ZI6?khrLQ#GbE=nd|S6&yE2LhW&>w0RM`*sVgdwDYJDzq?Oy6{ zagBG$z-8r6lC!fTQVFD>uqw${$CoGLF7)>t zi^pKsDCKl0)l6~N)M4;RMHDHh-uGqeEBZ3euM~rcsg_R>SoKole4jC=e4X+!-d8&- zOecJm<@L#YRg*eP>db7(E}QM2`epEDH(0pJK%mZNZ;h+DoLp|&VYU%0-RT=YEZ)hGW<8}{=g<#J zwFK8<$ZOr`xQ7pU$F#dxA{=kme(qWPPDD#0%97n>Z5Lv+c|KG6#jA~mc23$3oQb{i zF_v=u>)LZ*N1GGX?yPLWLq~YaaaK+<_thtnK4*=s2M*?~^&_HDQklS3+$PkHzSkJs zUkCFs8}sD!m6`?A9R6GE%~)Yoo6f5@E#`hw8r&ArO=^Mqx<@UB$y`m! zR+cd75i9fAw)F&mQWihg8{6DWUyPc9Qdt>>B+YfafKRM=!8dY&>BRH{TlD<+mwF7v z(c%U((~5YKlx@UO^Zr6&H%YA=*7Ccx7l9LNQ}WSd^$bB~EGtnR>p~)zerioB567m;`JT22Y{8t4fKgB(E38pLjT`Zhh`a z!$vS%DGvzu^ID}*JEzd(HT)TiSNu4$*;L|VkcDB0#eBe2+--~}KGkhw7`9GZ z8mOn#j-@^Ec#d>T$QtWa@kf5<|AZQE!sJq_HqYkHK22*K&-J~mmzdq{TJl}H2yNZz zTo%1P|FQ6kK*wRNDW5Zd*gg$^6lLDjP>}~Z%6bUgV%6(FvvFHx;Gl<~c;+522WSIU z!oKBiq@``QJidMnUy<2go)p#PdehJPw>RUC{rbPT<~Miw(o0xvb>pWj z+*#L>+QqEp1be&9xuw$g62|F(22MGuy3StY6SMMCFLpQFDc_Pfvo1B=ZF-e^sDy{z z#pGTxweFqt)He$mTLq9wIV=0Wh1a6--~7w>kIGLpCCokt59V63(C{KzYbKT$UJ|!b4ksyud`HE`#}j5 zO7|3=KD@3=NAsLk!C#maHYo2Sz}WL*v3%hBZ$fGuxqHkMlduZ1_v;KExzfU`(^XMm zXJw_J1o!eh(K?;^#4`9BQMBx#)DSbt5Ya5uYAW=*WN^L5W8Br`E^qzB^0OgW+)Nji z)KWiJ*-7LthL{a()=bbp@d%;p7QDB;OH^+Yu!}5zj+8p573FBrCnone3S)B&+F?J& zJTv#Fj@^LPP_s)2W{qn;bSP=QSqw*cXJsTJvtQs$cs4sdI!1j1v%aY4=%KZNc@mLn zO=OEaZ63ESB%ng`90^95Nje02j7-jBoEd%}^59gf+)Xe{mb1Fu7{Bo}(S+2BMQ`vg ziYAwrU$YAGGubKjkV9>c)K~T~@FfM+Yx&5tv?63Bx?G2R?WdM9S>3xawm}L?dJ)Nm zUFBY14BhmHdjwFMb3$$xGGb4+%1J!l61=t)LbY9m1m76%&{bP3v%KfKxDc6pw=suW zYSp$J@!tMH=Yq!?k>5bQti_#@fA!5owoRMBi`G;&%m1gn?+R-w3)@w3PzJFvB1J$Q z1(l9SFCqdmQba*OdWqBoBE1B}LXoC|^rj#np-4-R7L^hKY0?uQl8DqK21o)4NlviL z@BE{ln{#uXXT0D>_GYcGtndBa^{%}X+O|D0*J^(%Meg)ng@i$wq*3qYq7Zx;a@BI- z)cJYb8k9)YNt|3h#4W{Y6^Endckci(q@-&~5S1Y!d1_>w1mV*ah7>698p}Gn*^~i9 z;eJ?8@9#e6guNpAylutOCN7d zm^y`Whk!kM>kn8$?4$N8sLxL)qlM$jpVHIlv*tYNi)f9Z{3BNrOj`4mjXz3-2Ti$Q zZK?dOLS9t9YOvLn<}zNwxWe*+t4WJk@1=XE_bfnUiNPU|;2{+$H|530$>jDzUp4x{ z;>==^f+_!E^b+QIzkC;D}b&+;ht!SNS4_-qf!<7X>+-FD8h!P5frYBtcU&P3gg zKDmWeHwt2CG7*`>puXVc5l`HT__n*sR~NVqMmSX#*5_P^+0yHwb%- zA6kCAorf4<<;#j-*>>YuwE-Cv`sVD(@ZWeyjWo}Ops9f9N4k8s%e=djY^RnA>dlIo znXADz+pYvxh@|oKKY3eUd!pB&q$>u=zBei_^wkGXtk9%i)q5?O3 zR_f$lgsEHqi1aZ74MQFz-=*1 zJZ|?$V-XFt#-Dz{Q`NvaT6{+j0$xPylq(G>MY1gc)&Pe{ye=TZ)|eIy+LPi0qS)TR zKVl-lQa%%>%4wktusKIxNDi?0G4VqKGi1CbcXp>BHVavQQ3n7G$@Y&mDa&|1Dw0f8 zS-VLJIbH*UGvUfQhs92sLrDCObs*sS1@b=4A^U@UXgiB$O-Q_F^CEQI0${`~c(lx* zwJqJI{e!wxD5?*`FQt$UGc_k3)z(?Pc;^P$^L_Df-6UoYspc6p{|M?+W%#obIM5&F zTINY$y`Cn;udRq5W)W_kh&$DLxGbUqEy!aOpl^y?%IAhj>KZifN2CPAdhXcCj@xY^B0VL+uk&zLJP!2W`4PTcAoot_jgPW zY{v7>yn|L|tE6JD=GhpvKL8NnCzh>8%6(CNP>(>~R!5^<QE9QwAT!sl9~Vm?Q?K^nth2SkSxeN2_cJ}zj#INF zsqxy_3HuG~s%in@2)mU$F|^}>Ia=e>l4e=@ zEbqH|=9A%~$w9X`V1hTLhzzDN@f+C^ZZWYD6N4>Ny`->_TXFk_+B1dbLkWRqrs1^m zLHg`PqB~sJ)!dLyX~9?Uni8QEnc*89n!5C2&$=Oa;K&ELk(>2B<*67%{eh3u(V%7- zP1gngjuk8I*2?B*!72t#;;-}Z{OpGENVuZEu)_J!=IQkw%`CX`hf=M;tHB#jqmEkU z1lUZHDRC-5ZY3!0!@>%m#Gf!vb3DjP`EAwX@Ih~t{{fEkXG@sAVI1ovC$+VAdF_5- zWSZ;iVcIdD1?D;*X1$W!C(*SiEtrSOG4_MLx|BUBySTdSA>?$HKaJar2-WIPQZmsj zKVctYW!m9%4Qz#sE#L|=EP{^O`h={YF>GrN?5?WNRXtorkwJaTFgeks9EzKR#)4s6%Jo=5t~}6PlnUVP*Xwi7k|h0a#YD)SGEb@ zx$BPRNAw*~IBz8y;_plMjzB+&H(=HR*IqYfaX-3B7m3u#KCn0PnwP7g2zDfBK64j| zmR|ez+EdL1Z#t*aln|QVQ@PD*OO@E0#a!zYi)@YH-@^`>?Av07zN*3QouBklH{9ry z4!ZL|7qnL(TA(T^Eyp~C+R*JHTs5L=-N^nOEbQhmWmpvF^}wC+{Bz#Bk2|kS8}zFK z<=)itp!qfuYRs@Vp0C!Cd_~#4w>tA31Z3TJv`PBLXyyqC=_~GZ$ryR3=BU~hcdbe` znm4?f;`pxnr7X`*LB+6#^Dl)zMrPGuig?bIVvz8xK7OO?iyYJ(^(4rMjvz1_ za~qHg-MJLs-uxpAF*Szo@QGX8t}#e-Ot3y(aF4snV0hw7klmZT zPtHFn0ixF5DVI6~nK3u2 zfrJyv7S`evpD`gHT{H6z?5maL-CxLkwxjBgz{-*Z%MW07PC6-<#Xe@fvsd}z{tVva z>ZtYU+BY`~LyXEkiWFNRj}-$S_EQ?uUD~$Kt`KcNd(DQeG&+u*CLEc9RR^1UPn^UR zS7h0g-LT*iEDeb19J1O2tXQ(I(^l`;vYg_4Z<*KIvZBZ0%%?KSaY%e)P8&c8oD&|h zuAhDCkf%u@ah%ZiqR%Y`A2Y~UWb9=xj}%>)+^u_-4n8B}YTzjC?2Nr>@?L?Ad-Y*r zy$cxuMcVu^7tbuDJzF~F76W1R7T;Sw(3dI9H-+of&6pbT8)wJYJsjfNOZnG5^$IQz zD40&qsO9n6E_QW1EuD0ccy>P_d`4WHUP$cA85=Pdjxe>zKAt{RcPw!cuuCr}JA9<= z_?_;Qs(;fL_xnb^Q^7t zg3hKyE3)hC4^V>Ot{??jmoLim$ZSr-A5&X5cArQA-28T9%A>8$t&WL22b>`fr@A2jx8E@45Q}Qfq%6Ocym)+3`o0{MoOPvB<8QKfumrx3?y7Mtu{54W9i8kJG#LZuPE9Uq_xVfB)ah z%Kw_%)}KI#|24OlV?OE5I*cOB4gS3fI|Z``K7W1WyB}v2*&Td(wPV+Vu#-BszFGIn zcz2;UNz}vtK8l*PRhz?bT-HE1I!ARui-G+9dpBPS^sVo&J^n1*J;G3}@s_s_vABvzQegD)K4{iU~HzHh4 zA7$GfniRIr_a}Hbwehjh#FM9(z{69E|w>sr#+J_Ug=q zmXssf-*k{)-W&zo%(0&vyD+iUSeTs0bpG!6NaPpZ_NQJwslWVm7uTtOs6u7EKJ!UG zHTE(8LjemVtX0wPpZf5*Q~kMDRUXO!E_}Iw|yD3jJ4wzLfm`s?a93_^%562ju>L2Xdak{Q3$>#vtbx zJZUKSMsDAwC@%I5#C~l4!{OnJk>s}(?cwyVxHM5?dmOb?CH8fd)-e?00 z2*79jkc|f~@b%_j>>p+|cAcR(-TWW4>j`}6fO7b9y>4Vti9FV9-A`vtKK zPmRu{-&<}(uRQkn{yh$or?ac#Ti#h@xqU_2&qp|S74Z~(X$jo~$J%1!Ac~Hz4$9wN zv+5|Hy(hVX*7d$xrG7{Zb!W4g$cM55A9*gZZ=LT-`?0lW|W<7>%#i0!egt7AV}o>QIo4)gk6ubZvIkdIgvdY zfJ0_}C}Rl7+1{UO?wwurl<;&Ld?Cp4z2y%hv_H8263+s`|CxbLadKn2&lyP76QN}eoLNZnhyZRs&_|D$44(HDqL(&ShTzgIsD&%>$a6mp zZ=m5@lypweM+^O8n+R7L!ZK-kDJfOAiTcL3`>1qQ$+jpO&fS{;y5an=92n@&kwnY* z2(Clh0pu3zRaY2*DkQUqsxkL;GU(giY;A0SdjJf{8J& zs5;28>+iOao%xf$@f1Y**jxrDXL<8*I^U|HOX*YmI=;pT5H3CF!4oE!KWUV3@Z(C!=2zx0$DYQ)Ww@-CM4VK!0* zCAjx$a&}F);|s3K%}t)Hr;;tyBz@0wVP%p}vbi-iH1F0kGp+h?SG`PFgQSzQrg|y< zcrEXU(CfnoBI0zZx$B57?1V}D!TH7oVj~m^v<^Vok(k9yM=N#Gp8(Pa%&9mDrbjKK zpvD}vfa)ZchO4lYy0BcLr{aP(retQDbzYxZ7&8zu3?&BVd5GwsRfHbng+A#c{xq?t ze9g`2^OM%d^U=s#|6It~6vxYJLT-lqzB_oTF1Q?!HA~t90n$HQXN9J;OA)KdM6ec| z+z_W_&!=zO-!!7$)wCf4vl~^kYQzcwNH0a1gfj#sH;_q6)hw_ZI|kMFys*)^RE_E~ zi8wfYPV#kNKNnyhoLWX{42f?b+|aYKp*`(v=w*BuX|ce|N^GC6ZZ=+PsUBO*AArGY zEo_Jpb2|FkebM@8#O?kgsChZ!skp{mD?Ut(eofAkW>EF)8iA{7&NeJA3r23rvoJ+A z0mtSsCL51CVK1f=5JGG5V%gm(!l|H;xXx-qaOVvGd*9$&3~64Xj)9TL*J8#tOEp|- z9IbMP-DEp$77dE_Bu|H>`wd$p#QsIdpRTSnG4^s=4w|ULCujM+YDl-~$X69Xi!BYe zL9X@t^k_Y5*T|KpH=7Hv)|E3Yk-)8$8;cZRw&Fl(cm%UDXTNEEbR;SF@ zdv*k_#88oK%`|IrP!B7&Mfe3;LfZXB-{~%_UgH^f0V;Qulo}|U2f2i2JxKzKb#0|u zHRYC2uLfFsky<^3uA1s+AMjo7?#6;e$L#iA1}>H%>uuRbyY_^<^y97RibV*M3OlQ@ z595Q0Rv(Dp*0t5>24td|CSLKK2+5-Ljs!fu{p%<;x>7rs7q0#rni`(1Iw`8W6C++*I?KnRP=-~WLffhg` zu`?asVzC0D3(G}lzjkE+Pbil-tfq+$Se#9+N-7&vKU-9*=?g* zHA%U*<#B0c$OQ2XILijpQh+aqkDq3S9U3yLEEmDiSeAPVn5fnDNaS(%j>sS=G{dywaUoz+}=gwui|%!YDp$1|q)?(Rp6op$fP)XWS( zrnNr_^bGnC0USBF_4NUaS7l9$Fc=kTeF40&;)31IBy=%- zZtW+SB>j(%y9BZ5!FsQJ%_DJ(J%cs-OSufK`+dg#+d*b_;X^HqiA&8`f+%>twZ2(|u1(Gp-6%-*KTikE5`@UWl004BnaSCCHT1{7{b>5d zkH3OQ_ik|V$VD26Ki0QZhFnhOFAB}Vct&}WzIuYnq!>F>z0#v89F^6zT4U@s@Z zy8kMw8#s!v*A*TPXcIV4MT@v&weMD&@QG5yOh^;PSB!oF#L+NVjk}Q_g23Qo)g)@Z z6_^$a>KO6&#GfGG+7E19P%YiLQiO-oTUO<9tnPN1jkl`?MuG~5f(fgmFe8{#B$Bp$ zp@<$&{Mb)H1ta3f2NnSBGuwegmAN~eqd;mvWEI~zRmUV+8kb-yu#&D3cmwS$90!AB zQyUd7-Mgrbn&OSyJ%U!qwf}_1R{}#>M-kS#!f{^u6{8a?4?7jnD=;I4+K9xccEy%R0Q7X>=R+qh8+V zytN0NH=G*Le0Q6c7JEkVY7Kt4XA!l{A&Wp$4YnW5ZJ|Mi2Xo%ay=a(Zh|?XB+B(&; zA5XCt0LnacO179#g*l+S_@macKm8B3X059CbvaRmfw9|>z!}~-&Q0cuP}lmPy;3P< zBHmk!@F#J(m6hKg5qOLY5Wfu;47+BhdZcATCaW?7)<1I;O-j!Lros*TpBsj@XYO#% z%OU0B>nyC*3>z6P*=HWWJSC0!k6e`eP=7(KC$#6(LOPu11v8h^4%|JQlR8=Nhb_x_ zH2y88G0@Nrf$Ce%N08^w3W%k!ThK?}I_Ab(l@rrpC5mEFZ0WD6oDF66&)nKEVg7gd zM?m^7<_b^o&0d5{j9jx^Wy~)gHM`KQM&(VOv0Z)f(KB}=E4k93JBPfYBI^BhtaXqT z1oa4DUz)unU4~G5A2!UZIW)B!EHt3-z67DfcS?OZyE^9n9L;((0i>Y{?LjeN_f$~} zcx>RF5ce8jV8fOv@~ihJHlQetbGbR+mE}T$R3p1A|FHbXy?P^{(3bOuG2>agxSSf7 zAod!|18b(y;S`O|Iop0T#av|==R9@B$`1YHLEMz?V_>5+# z>Zd7cy-oEbLfkL{S>BB;;qJn|r6!D^*WjHLZ_n0+Kxj!pDYP4@-}HFg*aG573UEWi zRzU(QAPnlN9wYD@0IFrTK#8%5Nq2wVE(-FJgxTFgw>YKA$g1sitlY_@Zh-~fhrxY; z``PmldB?Rf$aHx@TSOm>J6$xRu_P|mt;QP7stoQT8nzVKeQcUN7}j8AXQ8cQec>U2 zXdJFN^QZ=Wq?bST^g&P%?xUs&RH-*0=uJ|R^eX{!PZKO2QTZfM7v?Npse)_np%}!dk<5nL`pqrbeP|mkT234>v_T5U5b?ZSSZV!n z_U{#3chWj9`PX>ul^eHUKuE~KljPK#?L7PZ%yywcQPia>@Qig z)_G1AOa)^;^m)W3+f9_!d>(Np1lnmuM^WJQQ>r7)L2sbl*b3LgThYx~cvCX|)t-r| z@{8J)K?W0ueJGjx7*oy(9LMZ;GZ%N>q3zb)S5aOGB`+ zRoEmC$c(RVZKZQ`$X*M--i}bRGCotabc(ICsh^h;TU4Jv-tA4TWppy=FmEibEGnB^ z_9PMSMdYwk9yd{H=)94ZXy&h1vY)&5Dhx{!IXL6q`nQv>OgbakKDK2bpf=7jocw=p zOR9&_<&c#VPpQd!=(xbi0wT2=l-+?bZyU_edy-Xfobs+E`0q{T>m4 z-D3puF0;KKnswC_S&cpfCr{8R$@CUtjvl?mB_`k#`#@rwApeUI`@gA}qz1TTV9<}L zn2z(nH=FW*;Cv3Z6VF{sgyVGQq}%d{a-+i^sx}nzJirF=Fk-*q`Aa^l2WrG`q(RCh z3Cm;UTUU5M_2jSvY%%M_3HK+Z5+dHdt8v+ z1k|Ju7o6tGR-ERn-R@B(l2S-YMI>r43mcH@es({gh#2>Nx}(u#q>g18N4}VHAW-kZ zV(dk&h0U-Ifg}atu3qBx^gYDd=)^xm1QhoinG48q)xLAb1(Y22&D{@YP&ikc&WB_^fV^+>9a?S9hy zJTLSjLcz}Z2*loyz_$)l?JZK?;OYq(TtIxvJ-2m`ZaVC+d>K1e5x%2BhkcDJz z(12?(eDqO-Eg!X^R%JcOVa6(Al-W`s?KZ;8xY4eJvbQ%n`sdsF^~lapeb@WyGl5w| zHoB{_on@fhLa+5Yb%Mp?JrIM)ozQpT_xvwhpOiXA$gS>s%%%q4-|c}xN8ytU>lwun zxKb|lGnx9LPv~;sPf5winOjl(TkMzb4k+~~c^X$ZJ>=s>*I#MVvD4UXp4i;LW^gai z3*}m#Cf4kI^7bw>LAp_yGL9z~@wP3@)>Aaa{7u6}wRMI<2WItLh2lrlN?^~J{Argb zs2Kp#dr_ghQc>5i3Bp>r_wr(8^8l!TB6xS(AZp>Bw<6JRA2EsAel9m@eH?7v_H?If zi?<)FeNSDq7Ae==HG}QhF+_okw|Av-=yeoxb`4^Ee?K1FHePU77-Pqm#(Z_6mWHbi zT53du1{h!Dzk$?G?6q8{j-y{BGpvUdVRf#bx!>Bz2Jxi!_@6Oj_oBk}bk3~DERqMW z^eiT0gZrExH$6QUHE^!-JeV&QkH@%#|-R#^N+R#%I zo``;{F|A`wzl^^^<6pEYgb!z%gU}f4!&s}u3+y?#a|ek8ENm!VK)Yn*{dqV>wxHaW zZ{2n~aCBpE131yiEcXyXqsl*bx~Q|0Xf+YOUtx4wp8@EM8^-)r)L5Pbvs4nh|E8{( z19`OV=xq~5>w0okX-|=c9WxC89+8Rf&0dQoW$Xs?L`)dVRzSV8mdI@ArrD;tGvThR zJ|=Y(U4&mhBL1j7Il`AjY4{L_hKj$=Q?5BW@-BVk<1n$Y0!M4{P_certJH^qc?iMj z`~ig3l6A&IiuvkbZTGcz!0~xzxs%W!up*rBnZ;#XrQSfc-a?+UU=dG^j>T=|{987~ zCZ#*>04;tOEREGK>+zwkAdBaUlPlSAWO!7}dlbXv=*M-QJY}w_H#tl(OR8F6)dDZb z1jg)jMtP>KLk#6B?aOY|jyco`&pQu6=1u~@1aX-CEKXCF77*^o`Led#rc~9LCl+Ua ziLXk!O`g855?`HIuZXzzUY@U%-PfgIS^(5yCQY32m(?L3;ylEx4pY86uQ^et`7Leb z5Pg)qnKzKB&HWW2dL>~T+4}GoG_h?6Hg)&M=vCja#e*2XJn}T@H5go^Em;^yn$_pl z3=geKZi5BHT|8OZ>8RduoD*1SJxr`%_O6X2fDPJO?Uh>YzE?r0YOYK-#5)?=Xzou_ z%O>T5HHw>V_410Fa>G?xB}I>FatvuYT5h%Rs1Q6hRY|97>j@D6S9_|YRO z3$F)+E$viWvH>FiFC^!Wng{PUP1*?R zth1Ax+y(E9ptVq6`BbQplWlZJzt2lZ15{#EQ9@r-?&V8q4+maxY0CJWoXBamL^0i^ zf_!W+y3_Xr z5pEnfm%@$Q&v8-chx;!M+tM7jrAg=Wd+u(NQamU;hMb=V<9#$-VrId!@w(lgRDtX* zvt2G{?mHjN-^KeEC;wd6&HPu#e9Of%Y+qRrd^F9BTuyK2DQ5YdJ{D8M%O(k{)9ccm zCsL&em!EGgkH~XzVmzo#o!DH@|Jv>RLXyj7^z2n=JO92vTCw$(vVZR%1*z&RYKP{gz zsxfZVZdE1u%GTf5o2Ae7IDZr+FWa^UCvXNez74P?B~&ZZodKluz(?(^;Z99@td|*ELGRAuOKrcZct2|f9WH!hR=<~EvS;yC+UkCRD+~B&=jktc z&d+<;TR0{^YjuAvPIPxra?cMKuK50yvd4a{oKz^h(*yhK&i7-x843D)nC9p5QHAGO z3YQu^EWVeQ@<05w3R3X$>+9CXUw=QgmuHoJZ3P3tF(bhe+d7HwWu3b^f2~vHIq6ta zzTfftu{q=m{n`r0c$UO?hAL41kn2Xd{94=^mGXT2>bGF|I*c;)$l=wzY7Dl4X8^4O;KR^5O{;vaQ@cw>9^r?NZx&NxsCKmdCT#eRP{Pb*x2xu>H3;UmeuJQSba}Kxu55S~z AlK=n! diff --git a/apple/Tests/FerrostarSwiftUITests/Views/__Snapshots__/InnerGridViewTests/testFullView.1.png b/apple/Tests/FerrostarSwiftUITests/Views/__Snapshots__/InnerGridViewTests/testFullView.1.png index a59d54b2f0c1648ae639b07d5e8f23cf38e9f074..f154ca19ece8eb027bfc4c1527394a84a0516774 100644 GIT binary patch delta 227 zcmaF0h5gkQ_6_`uN>g|wy<8+Uja$EF%cWf5U10w}pjz^=(B-37Q|9*W`~TJc-)2L` zA}!|g|G#ctrX4HF6H`)e&%ofo;OXKRvUy`{g4E^$gUJG$6a4vkHVand)T*(zHaaS$ zxTLjw)krOvV`jFw=lwgOS^tdPW52&Xe*gab)BkJh{{7m#`0GV`p2z!tHNgzq-pJ4R zS#|pb0md7A)4j78xtYIyPum`u#i-8BW7&M_3tU~|Bt}lz?FUL3ugYxCTF>}KOGL@> V>h%qG-d|z>0#8>zmvv4FO#tJmVEzCA delta 227 zcmaF0h5gkQ_6_`uN|SghyIfXkIJSPxmP@(9yTJZ|K(*v!q02|Frp)c#_y4Q?|ILPs zMOw`3|9{-POgmPTN2Buc5(Wkb22U5qkj)!o6Qnj57)%z}oZ!#Tvsthrr&g`CrO{nw ziBnU{SB=zyIc8>?d)~hjn)T1vJ@)(S=lAc=KmEV9?(dJyi@#p9=egF9*ab6edm}&N zXVvW&1Q>7dP4~`X bool { + matches!(self, RouteDeviation::Deviation { .. }) + } + + /// Whether the user has deviated from the route entirely. + /// + /// This is true when the user is not just deviated from the current step, + /// but also from the route as a whole (they didn't just take a shortcut). + #[must_use] + pub fn is_completely_off_route(&self) -> bool { + matches!( + self, + RouteDeviation::Deviation { + kind: DeviationKind::CompletelyOffRoute { .. } + } + ) + } +} + /// A custom deviation detector (for extending the behavior of [`RouteDeviationTracking`]). /// /// This allows for arbitrarily complex implementations when the provided ones are not enough. @@ -347,7 +375,7 @@ proptest! { _trip_state: TripState, ) -> RouteDeviation { RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 7.0, }, } @@ -381,7 +409,7 @@ proptest! { prop_assert_eq!( tracking.check_route_deviation(&route, &trip_state_on_route), RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 7.0, }, } @@ -408,7 +436,7 @@ proptest! { prop_assert_eq!( tracking.check_route_deviation(&route, &trip_state_random), RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 7.0, }, } @@ -487,7 +515,7 @@ proptest! { // Cannot happen with a single-step route, but handle for exhaustiveness. prop_assert!(false, "OffStep should not occur with a single-step route"); } - RouteDeviation::Deviation { kind: DeviationKind::OffRoute { deviation_from_route_line } } => { + RouteDeviation::Deviation { kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line } } => { prop_assert_eq!( deviation_from_route_line, deviation.unwrap() @@ -645,10 +673,10 @@ mod off_step_tests { matches!( result, RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { .. } + kind: DeviationKind::CompletelyOffRoute { .. } } ), - "Should be OffRoute when user is not on any step, got: {result:?}" + "Should be CompletelyOffRoute when user is not on any step, got: {result:?}" ); } diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index 4c6a46b59..6f880dde1 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -507,7 +507,7 @@ impl JsNavigationController { mod tests { use super::step_advance::StepAdvanceCondition; use super::*; - use crate::deviation_detection::{DeviationKind, RouteDeviation}; + use crate::deviation_detection::RouteDeviation; use crate::navigation_controller::step_advance::conditions::{ DistanceEntryAndExitCondition, DistanceToEndOfStepCondition, }; @@ -560,17 +560,13 @@ mod tests { ); } - // Regression test that we are never marked as off the route. + // Regression test that we are never marked as completely off the route. // We used to encounter this with relative step advance on self-intersecting - // routes, for example. OffStep is acceptable (on the route, just a different step). + // routes, for example. OffStepOnRoute is acceptable + // (on the route, just a different step). assert!( - !matches!( - deviation, - RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { .. } - } - ), - "User should never be off route during simulation, got: {deviation:?}" + !deviation.is_completely_off_route(), + "User should never be completely off route during simulation, got: {deviation:?}" ); } TripState::Complete { .. } => { diff --git a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs index 395595abd..7cc28dca7 100644 --- a/common/ferrostar/src/navigation_controller/step_advance/conditions.rs +++ b/common/ferrostar/src/navigation_controller/step_advance/conditions.rs @@ -6,16 +6,20 @@ use crate::{ deviation_from_line, get_linestring, is_within_threshold_to_end_of_linestring, snap_user_location_to_line, }, - deviation_detection::{DeviationKind, RouteDeviation}, navigation_controller::models::TripState, }; use geo::Point; +use serde::{Deserialize, Serialize}; + +#[cfg(feature = "wasm-bindgen")] +use tsify::Tsify; #[cfg(test)] use proptest::prelude::*; #[cfg(test)] use crate::{ + deviation_detection::{DeviationKind, RouteDeviation}, navigation_controller::test_helpers::get_navigating_trip_state, test_utils::{arb_coord, make_user_location}, }; @@ -112,33 +116,49 @@ impl StepAdvanceConditionSerializable for DistanceToEndOfStepCondition { } } -/// Requires that the user be at least this far from the current route step. +/// Controls when a deviation-aware step-advance condition is allowed to evaluate, +/// based on the user's current +/// [`RouteDeviation`](crate::deviation_detection::RouteDeviation) status. +#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "uniffi", derive(uniffi::Enum))] +#[cfg_attr(feature = "wasm-bindgen", derive(Tsify))] +#[cfg_attr(feature = "wasm-bindgen", tsify(into_wasm_abi, from_wasm_abi))] +pub enum DeviationCalculationPolicy { + /// Always evaluate, regardless of deviation status. + Always, + /// Evaluate while the user is still somewhere on the route polyline + /// (current step or any future step), + /// but suspend if the user is completely off the route. + WhileOnRoute, + /// Evaluate only while the user is within an acceptable deviation of the current step's polyline. + /// + /// Suspend on any deviation + /// (whether off-step-but-on-route, or completely off-route). + WhileOnCurrentStep, +} + +/// Advances once the user is at least [`Self::distance`] meters from the current step's polyline. /// /// This results in *delayed* advance, /// but is more robust to spurious / unwanted step changes in scenarios including -/// self-intersecting routes (sudden jump to the next step) +/// self-intersecting routes (sudden jumps to the next step) /// and pauses at intersections (advancing too soon before the maneuver is complete). /// -/// NOTE! This may be less robust to things like short steps, out and backs and U-turns, -/// where this may eagerly exit a current step before the user has traversed it if the start -/// the step within range of the end. +/// NOTE! This may be less robust to things like short steps, out-and-backs, and U-turns, +/// where this may eagerly exit a current step before the user has traversed it +/// if the start of the step is within range of the end. #[derive(Debug, Copy, Clone)] #[cfg_attr(feature = "uniffi", derive(uniffi::Object))] pub struct DistanceFromStepCondition { - /// The minimum the distance the user must have travelled from the step's polyline. + /// The minimum distance, in meters, + /// from the current step's polyline at which this condition advances. pub distance: u16, /// The minimum required horizontal accuracy of the user location, in meters. - /// Values larger than this cannot ever trigger a step advance. + /// Locations with reported accuracy worse than this cannot trigger a step advance. pub minimum_horizontal_accuracy: u16, - /// Whether the condition can succeed when the user is off route. - pub calculate_while_off_route: bool, - /// Whether the condition can succeed when the user is off the current step - /// but still on the route polyline (on a future step). - /// - /// Default: `true` (backward compatible — allows advancement when off-step). - /// Set to `false` to prevent step advancement cascading when the user - /// has deviated from the current step. - pub calculate_while_off_step: bool, + /// Controls when this condition is permitted to evaluate based on the user's current + /// [`RouteDeviation`](crate::deviation_detection::RouteDeviation) status. + pub calculation_policy: DeviationCalculationPolicy, } impl StepAdvanceCondition for DistanceFromStepCondition { @@ -148,12 +168,8 @@ impl StepAdvanceCondition for DistanceFromStepCondition { } fn new_instance(&self) -> Arc { - Arc::new(DistanceFromStepCondition { - distance: self.distance, - minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, - calculate_while_off_route: self.calculate_while_off_route, - calculate_while_off_step: self.calculate_while_off_step, - }) + // Simple Arc::new here; there is no internal state to reset for this condition. + Arc::new(*self) } } @@ -163,24 +179,26 @@ impl DistanceFromStepCondition { let user_location = trip_state.user_location()?; let current_step = trip_state.current_step()?; - let should_advance = - // If the user is off route and we don't allow calculating while off route, don't advance - if (!self.calculate_while_off_route - && matches!(deviation, RouteDeviation::Deviation { kind: DeviationKind::OffRoute { .. } })) - // If the user is off the current step and we don't allow calculating while off step, don't advance - || (!self.calculate_while_off_step - && matches!(deviation, RouteDeviation::Deviation { .. })) - // If the user location isn't accurate enough, don't advance - || (user_location.horizontal_accuracy > self.minimum_horizontal_accuracy.into()) - { - false - } else { - let current_position: Point = user_location.into(); - let current_step_linestring = current_step.get_linestring(); + let permits_calculation = match self.calculation_policy { + DeviationCalculationPolicy::Always => true, + DeviationCalculationPolicy::WhileOnRoute => !deviation.is_completely_off_route(), + DeviationCalculationPolicy::WhileOnCurrentStep => { + !deviation.is_deviated_from_current_step() + } + }; + let location_too_inaccurate = + user_location.horizontal_accuracy > self.minimum_horizontal_accuracy.into(); - deviation_from_line(¤t_position, ¤t_step_linestring) - .is_some_and(|deviation| deviation > self.distance.into()) - }; + let should_advance = if !permits_calculation || location_too_inaccurate { + // Bail early + false + } else { + let current_position: Point = user_location.into(); + let current_step_linestring = current_step.get_linestring(); + + deviation_from_line(¤t_position, ¤t_step_linestring) + .is_some_and(|deviation| deviation > self.distance.into()) + }; let result = if should_advance { StepAdvanceResult::advance_to_new_instance(self) @@ -197,8 +215,7 @@ impl StepAdvanceConditionSerializable for DistanceFromStepCondition { SerializableStepAdvanceCondition::DistanceFromStep { distance: self.distance, minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, - calculate_while_off_route: self.calculate_while_off_route, - calculate_while_off_step: self.calculate_while_off_step, + calculation_policy: self.calculation_policy, } } } @@ -358,11 +375,18 @@ impl DistanceEntryAndExitCondition { impl StepAdvanceCondition for DistanceEntryAndExitCondition { fn should_advance_step(&self, trip_state: TripState) -> StepAdvanceResult { if self.has_reached_end_of_current_step { + // This inner check fires once the user is far enough from the current step's + // polyline that we treat them as having moved past the end of the step. + // + // `WhileOnRoute` is the policy we want here: + // - On `OffStepOnRoute` (user has progressed onto a future step): + // evaluate. That is the normal success case for an exit check. + // - On `CompletelyOffRoute` (user is lost): suspend. + // The rerouter, not this condition, should drive what happens next. let distance_from_end = DistanceFromStepCondition { minimum_horizontal_accuracy: self.minimum_horizontal_accuracy, distance: self.distance_after_end_of_step, - calculate_while_off_route: false, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::WhileOnRoute, }; let should_advance = distance_from_end @@ -688,8 +712,7 @@ mod tests { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance - calculate_while_off_route: true, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::Always, }; let trip_state = get_navigating_trip_state( @@ -697,7 +720,7 @@ mod tests { vec![STRAIGHT_LINE_SHORT_ROUTE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 10.0, }, }, @@ -713,7 +736,7 @@ mod tests { } #[test] - fn test_distance_from_step_advance_with_deviation_off() { + fn test_distance_from_step_no_advance_when_completely_off_route() { // Create a location that's far from the route (500+ meters north) // At the equator, 0.005° latitude is approximately 555 meters let user_location = make_user_location(coord!(x: 0.005, y: 0.0005), 5.0); @@ -722,8 +745,7 @@ mod tests { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance - calculate_while_off_route: false, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::WhileOnRoute, }; let trip_state = get_navigating_trip_state( @@ -731,7 +753,7 @@ mod tests { vec![STRAIGHT_LINE_SHORT_ROUTE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 10.0, }, }, @@ -742,7 +764,7 @@ mod tests { assert!( !result.should_advance, - "Should not advance when far from the route" + "WhileOnRoute should not advance when the user is completely off the route" ); } @@ -756,8 +778,7 @@ mod tests { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, // Must be at least 100 meters from route to advance - calculate_while_off_route: false, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::WhileOnRoute, }; let trip_state = get_navigating_trip_state( @@ -1643,12 +1664,11 @@ mod off_step_tests { LazyLock::new(|| make_user_location(coord!(x: 0.005, y: 0.0005), 5.0)); #[test] - fn test_calculate_while_off_step_true_allows_advance() { + fn test_always_policy_advances_when_off_step_on_route() { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, - calculate_while_off_route: true, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::Always, }; let trip_state = get_navigating_trip_state( @@ -1665,17 +1685,16 @@ mod off_step_tests { let result = condition.should_advance_step(trip_state); assert!( result.should_advance, - "Should advance when calculate_while_off_step is true" + "Always should advance regardless of deviation status" ); } #[test] - fn test_calculate_while_off_step_false_blocks_advance() { + fn test_while_on_current_step_policy_blocks_advance_when_off_step_on_route() { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, - calculate_while_off_route: true, - calculate_while_off_step: false, + calculation_policy: DeviationCalculationPolicy::WhileOnCurrentStep, }; let trip_state = get_navigating_trip_state( @@ -1692,18 +1711,18 @@ mod off_step_tests { let result = condition.should_advance_step(trip_state); assert!( !result.should_advance, - "Should not advance when calculate_while_off_step is false and deviation is OffStep" + "WhileOnCurrentStep should block advance once the user is off the current step" ); } #[test] - fn test_calculate_while_off_route_false_does_not_block_off_step() { - // calculate_while_off_route: false should only block OffRoute, not OffStep + fn test_while_on_route_policy_advances_when_off_step_on_route() { + // WhileOnRoute should permit advance when the user is off the current step + // but still on a future step on the route polyline. let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, - calculate_while_off_route: false, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::WhileOnRoute, }; let trip_state = get_navigating_trip_state( @@ -1720,17 +1739,46 @@ mod off_step_tests { let result = condition.should_advance_step(trip_state); assert!( result.should_advance, - "calculate_while_off_route: false should not block advancement when OffStep" + "WhileOnRoute should not block advancement when only off the current step" + ); + } + + #[test] + fn test_while_on_current_step_policy_blocks_advance_when_completely_off_route() { + let condition = DistanceFromStepCondition { + minimum_horizontal_accuracy: 10, + distance: 100, + // `WhileOnCurrentStep` blocks advancement on *any* + // deviation, including `CompletelyOffRoute`. + // Being completely off the route is itself a (stronger) form of being off the current step. + calculation_policy: DeviationCalculationPolicy::WhileOnCurrentStep, + }; + + let trip_state = get_navigating_trip_state( + *LOCATION_FAR_FROM_STEP, + vec![STRAIGHT_LINE_STEP.clone()], + vec![], + RouteDeviation::Deviation { + kind: DeviationKind::CompletelyOffRoute { + deviation_from_route_line: 200.0, + }, + }, + ); + + let result = condition.should_advance_step(trip_state); + assert!( + !result.should_advance, + "WhileOnCurrentStep must block advancement even when CompletelyOffRoute, \ + since being off the route is itself being off the current step" ); } #[test] - fn test_calculate_while_off_route_false_still_blocks_off_route() { + fn test_while_on_route_policy_blocks_advance_when_completely_off_route() { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, - calculate_while_off_route: false, - calculate_while_off_step: true, + calculation_policy: DeviationCalculationPolicy::WhileOnRoute, }; let trip_state = get_navigating_trip_state( @@ -1738,7 +1786,7 @@ mod off_step_tests { vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 200.0, }, }, @@ -1747,20 +1795,19 @@ mod off_step_tests { let result = condition.should_advance_step(trip_state); assert!( !result.should_advance, - "calculate_while_off_route: false should still block advancement when OffRoute" + "WhileOnRoute should block advancement when the user is completely off the route" ); } #[test] - fn test_both_flags_false_blocks_both() { + fn test_while_on_current_step_policy_handles_all_deviation_states() { let condition = DistanceFromStepCondition { minimum_horizontal_accuracy: 10, distance: 100, - calculate_while_off_route: false, - calculate_while_off_step: false, + calculation_policy: DeviationCalculationPolicy::WhileOnCurrentStep, }; - // Test OffStep blocked + // OffStepOnRoute: blocked let trip_state_off_step = get_navigating_trip_state( *LOCATION_FAR_FROM_STEP, vec![STRAIGHT_LINE_STEP.clone()], @@ -1772,23 +1819,29 @@ mod off_step_tests { }, ); let result = condition.should_advance_step(trip_state_off_step); - assert!(!result.should_advance, "Both false should block OffStep"); + assert!( + !result.should_advance, + "WhileOnCurrentStep should block on OffStepOnRoute" + ); - // Test OffRoute blocked + // CompletelyOffRoute: blocked let trip_state_off_route = get_navigating_trip_state( *LOCATION_FAR_FROM_STEP, vec![STRAIGHT_LINE_STEP.clone()], vec![], RouteDeviation::Deviation { - kind: DeviationKind::OffRoute { + kind: DeviationKind::CompletelyOffRoute { deviation_from_route_line: 200.0, }, }, ); let result = condition.should_advance_step(trip_state_off_route); - assert!(!result.should_advance, "Both false should block OffRoute"); + assert!( + !result.should_advance, + "WhileOnCurrentStep should block on CompletelyOffRoute" + ); - // Test NoDeviation still works + // NoDeviation: allowed let trip_state_on_route = get_navigating_trip_state( *LOCATION_FAR_FROM_STEP, vec![STRAIGHT_LINE_STEP.clone()], @@ -1798,7 +1851,7 @@ mod off_step_tests { let result = condition.should_advance_step(trip_state_on_route); assert!( result.should_advance, - "Both false should still allow advance when NoDeviation" + "WhileOnCurrentStep should still allow advance when NoDeviation" ); } } diff --git a/common/ferrostar/src/navigation_controller/step_advance/mod.rs b/common/ferrostar/src/navigation_controller/step_advance/mod.rs index 7f93c52a2..344608379 100644 --- a/common/ferrostar/src/navigation_controller/step_advance/mod.rs +++ b/common/ferrostar/src/navigation_controller/step_advance/mod.rs @@ -2,9 +2,9 @@ use crate::navigation_controller::{ models::TripState, step_advance::conditions::{ - AndAdvanceConditions, DistanceEntryAndExitCondition, DistanceEntryAndSnappedExitCondition, - DistanceFromStepCondition, DistanceToEndOfStepCondition, ManualStepCondition, - OrAdvanceConditions, + AndAdvanceConditions, DeviationCalculationPolicy, DistanceEntryAndExitCondition, + DistanceEntryAndSnappedExitCondition, DistanceFromStepCondition, + DistanceToEndOfStepCondition, ManualStepCondition, OrAdvanceConditions, }, }; use serde::{Deserialize, Serialize}; @@ -114,8 +114,7 @@ pub enum SerializableStepAdvanceCondition { DistanceFromStep { distance: u16, minimum_horizontal_accuracy: u16, - calculate_while_off_route: bool, - calculate_while_off_step: bool, + calculation_policy: DeviationCalculationPolicy, }, #[cfg_attr(feature = "wasm-bindgen", serde(rename_all = "camelCase"))] DistanceEntryExit { @@ -155,13 +154,11 @@ impl From for Arc { SerializableStepAdvanceCondition::DistanceFromStep { distance, minimum_horizontal_accuracy, - calculate_while_off_route, - calculate_while_off_step, + calculation_policy, } => Arc::new(DistanceFromStepCondition { distance, minimum_horizontal_accuracy, - calculate_while_off_route, - calculate_while_off_step, + calculation_policy, }), SerializableStepAdvanceCondition::DistanceEntryExit { minimum_horizontal_accuracy, @@ -228,21 +225,24 @@ pub fn step_advance_distance_to_end_of_step( /// Convenience function for creating a [`DistanceFromStepCondition`]. /// -/// This advances to the next step when the user is at least `distance` meters away _from_ any point on the current route step geometry. -/// Does not advance unless the reported location accuracy is `minimum_horizontal_accuracy` meters or better. +/// This advances to the next step when the user is at least `distance` meters away from any point +/// on the current route step geometry. +/// Does not advance unless the reported location accuracy is `minimum_horizontal_accuracy` +/// meters or better. +/// +/// `calculation_policy` controls when this condition is permitted to evaluate +/// based on the user's current route deviation status. #[cfg(feature = "uniffi")] #[uniffi::export] pub fn step_advance_distance_from_step( distance: u16, minimum_horizontal_accuracy: u16, - calculate_while_off_route: bool, - calculate_while_off_step: bool, + calculation_policy: DeviationCalculationPolicy, ) -> Arc { Arc::new(DistanceFromStepCondition { distance, minimum_horizontal_accuracy, - calculate_while_off_route, - calculate_while_off_step, + calculation_policy, }) } From 5022ae6efd52f57265a0c18780d8f1a11de1059a Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 13:08:30 +0900 Subject: [PATCH 07/13] Remove unnecessary import --- common/ferrostar/src/navigation_controller/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index 6f880dde1..23e3b385a 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -507,7 +507,6 @@ impl JsNavigationController { mod tests { use super::step_advance::StepAdvanceCondition; use super::*; - use crate::deviation_detection::RouteDeviation; use crate::navigation_controller::step_advance::conditions::{ DistanceEntryAndExitCondition, DistanceToEndOfStepCondition, }; From 58ec0bfacef29916206eeabeeca6ecc1b2ba40c4 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 18:19:28 +0900 Subject: [PATCH 08/13] Upgrade checkout action to v6 (desperate attempt) --- .github/workflows/android.yml | 8 ++++---- .github/workflows/cargo-publish.yml | 2 +- .github/workflows/gradle-publish.yml | 2 +- .github/workflows/ios-release.yml | 2 +- .github/workflows/ios.yml | 8 ++++---- .github/workflows/npm-publish.yml | 2 +- .github/workflows/pages.yml | 2 +- .github/workflows/rust.yml | 8 ++++---- .github/workflows/typos.yml | 2 +- .github/workflows/wasm-js.yml | 2 +- react-native/.github/workflows/ci.yml | 10 +++++----- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e732dca1a..68da8d111 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -13,7 +13,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: true @@ -53,7 +53,7 @@ jobs: packages: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: true @@ -99,7 +99,7 @@ jobs: packages: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: true @@ -146,7 +146,7 @@ jobs: packages: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/cargo-publish.yml b/.github/workflows/cargo-publish.yml index 27a53d68c..7c70362df 100644 --- a/.github/workflows/cargo-publish.yml +++ b/.github/workflows/cargo-publish.yml @@ -11,7 +11,7 @@ jobs: publish_crate: runs-on: macos-15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Cargo Publish run: cargo publish -p ferrostar working-directory: common diff --git a/.github/workflows/gradle-publish.yml b/.github/workflows/gradle-publish.yml index 64a863100..4f062537c 100644 --- a/.github/workflows/gradle-publish.yml +++ b/.github/workflows/gradle-publish.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up JDK 21 uses: actions/setup-java@v4 diff --git a/.github/workflows/ios-release.yml b/.github/workflows/ios-release.yml index 4ec5c1f83..d59543d4a 100644 --- a/.github/workflows/ios-release.yml +++ b/.github/workflows/ios-release.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 # Ensure that we can operate on the full history ref: main diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 9a5dec44d..9c9bb5841 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Check format id: check-format @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Ensure that Package.swift is NOT configured for local development at this stage (easy to forget) run: | @@ -100,7 +100,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Configure Package.swift for local development run: sed -i '' 's/let useLocalFramework = false/let useLocalFramework = true/' Package.swift @@ -155,7 +155,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Configure Package.swift for local development run: sed -i '' 's/let useLocalFramework = false/let useLocalFramework = true/' Package.swift diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 7478214a9..40a261367 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install wasm-pack run: cargo install wasm-pack diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 921ab95e9..bbe680b45 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -12,7 +12,7 @@ jobs: pages: write # To push to a GitHub Pages site id-token: write # To update the deployment status steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Install latest mdbook diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d0bf8bb1e..4b89be7d1 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -15,7 +15,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }}-rust-msrv cancel-in-progress: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: taiki-e/install-action@v2 with: tool: cargo-hack @@ -31,7 +31,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v2 with: @@ -45,7 +45,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: rustfmt checks run: cargo fmt --check working-directory: common @@ -56,7 +56,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }}-rust-build cancel-in-progress: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: taiki-e/install-action@nextest - name: Cargo Build diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml index 794057b3f..e86eb34be 100644 --- a/.github/workflows/typos.yml +++ b/.github/workflows/typos.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Run typos uses: crate-ci/typos@master diff --git a/.github/workflows/wasm-js.yml b/.github/workflows/wasm-js.yml index 40caa248b..dbfeed4d4 100644 --- a/.github/workflows/wasm-js.yml +++ b/.github/workflows/wasm-js.yml @@ -15,7 +15,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }}-wasm-build cancel-in-progress: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install wasm-pack run: cargo install wasm-pack diff --git a/react-native/.github/workflows/ci.yml b/react-native/.github/workflows/ci.yml index 0c7ff3c96..94549187c 100644 --- a/react-native/.github/workflows/ci.yml +++ b/react-native/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup uses: ./.github/actions/setup @@ -30,7 +30,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup uses: ./.github/actions/setup @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup uses: ./.github/actions/setup @@ -56,7 +56,7 @@ jobs: TURBO_CACHE_DIR: .turbo/android steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup uses: ./.github/actions/setup @@ -112,7 +112,7 @@ jobs: TURBO_CACHE_DIR: .turbo/ios steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup uses: ./.github/actions/setup From 343d85013486b7c2832d31879945c7b485df2f31 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 18:47:17 +0900 Subject: [PATCH 09/13] Resolve merge logical conflicts --- .../src/navigation_controller/mod.rs | 89 ++++++++++--------- 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index 2eea776c0..10bb5a83a 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -169,16 +169,18 @@ impl Navigator for NavigationController { .. } = initial_trip_state { - // If the user starts off-route, suppress instructions for the same reason as - // in `create_intermediate_trip_state`: the snap-derived distance to the next - // maneuver is geometrically unsound, so any countdown surfaced from it would - // mislead the user. - let (visual_instruction, spoken_instruction) = - if deviation == RouteDeviation::NoDeviation { - (visual_instruction, spoken_instruction) - } else { - (None, None) - }; + // If the user starts completely off the route, suppress instructions for the + // same reason as in `create_intermediate_trip_state`: the snap-derived distance + // to the next maneuver is geometrically unsound, so any countdown surfaced + // from it would mislead the user. `OffStepOnRoute` is intentionally not + // suppressed here — the user is still on the route polyline (just on a future + // step), and the step-advance flow will reconcile shortly. + let (visual_instruction, spoken_instruction) = if deviation.is_completely_off_route() + { + (None, None) + } else { + (visual_instruction, spoken_instruction) + }; TripState::Navigating { current_step_geometry_index, user_location, @@ -383,28 +385,32 @@ impl NavigationController { ); // Visual + spoken instructions are derived from the *snapped* distance to - // the next maneuver. While off-route, that snap is geometrically unsound: - // a user laterally far from the route still projects onto it somewhere, and - // the resulting "distance to next maneuver" is the phantom snap's distance, - // not the user's. Surfacing instructions paced off that phantom distance - // produces wrong countdowns to maneuvers the user can't take from their - // current position. Suppress both while off-route — the off-route signal - // (deviation + the consumer's own alert) is the right cue to surface; - // resume normal instruction emission on return. Apps that don't want this - // policy can configure `RouteDeviationTracking::None`. - let (visual_instruction, spoken_instruction) = - if deviation == RouteDeviation::NoDeviation { - ( - current_step - .get_active_visual_instruction(progress.distance_to_next_maneuver) - .cloned(), - current_step - .get_current_spoken_instruction(progress.distance_to_next_maneuver) - .cloned(), - ) - } else { - (None, None) - }; + // the next maneuver. When the user is completely off the route, that snap + // is geometrically unsound: a user laterally far from the route still + // projects onto it somewhere, and the resulting "distance to next maneuver" + // is the phantom snap's distance, not the user's. Surfacing instructions + // paced off that phantom distance produces wrong countdowns to maneuvers + // the user can't take from their current position. Suppress both while + // completely off-route — the deviation flag (and the consumer's own alert) + // is the right cue to surface; resume normal instruction emission on + // return. `OffStepOnRoute` is intentionally not suppressed: the user is + // still on the route polyline, and the step-advance flow will reconcile + // shortly. Apps that don't want any of this policy can configure + // `RouteDeviationTracking::None`. + let (visual_instruction, spoken_instruction) = if deviation + .is_completely_off_route() + { + (None, None) + } else { + ( + current_step + .get_active_visual_instruction(progress.distance_to_next_maneuver) + .cloned(), + current_step + .get_current_spoken_instruction(progress.distance_to_next_maneuver) + .cloned(), + ) + }; let annotation_json = current_step_geometry_index .and_then(|index| current_step.get_annotation_at_current_index(index)); @@ -790,7 +796,8 @@ mod tests { // Note: `update_user_location` computes deviation against the *previous* trip // state's user_location (mod.rs:289), so the deviation flag lags one tick. The // first off-route update therefore still reports NoDeviation; the second flips it - // to OffRoute, and that is when instruction suppression activates. + // to `Deviation { kind: CompletelyOffRoute }` (the user is 55km from every step), + // and that is when instruction suppression activates. let off_route_loc = make_user_location( coord!(x: start_coord.lng + 0.5, y: start_coord.lat + 0.5), 5.0, @@ -805,24 +812,24 @@ mod tests { .. } => { assert!( - matches!(deviation, RouteDeviation::OffRoute { .. }), - "expected OffRoute on second off-route tick, got {deviation:?}" + deviation.is_completely_off_route(), + "expected CompletelyOffRoute on second off-route tick, got {deviation:?}" ); assert!( visual_instruction.is_none(), - "visual_instruction must be None while off-route, got {visual_instruction:?}" + "visual_instruction must be None while completely off-route, got {visual_instruction:?}" ); assert!( spoken_instruction.is_none(), - "spoken_instruction must be None while off-route, got {spoken_instruction:?}" + "spoken_instruction must be None while completely off-route, got {spoken_instruction:?}" ); } other => panic!("expected Navigating, got {other:?}"), }; // 3. Update back to the on-route location. The first return tick still carries - // the lagged OffRoute flag (deviation is computed from the previous user_location, - // which was off-route), so update twice to clear the lag. + // the lagged CompletelyOffRoute flag (deviation is computed from the previous + // user_location, which was off-route), so update twice to clear the lag. let recovered_lagged = controller.update_user_location(on_route_loc.clone(), off_state); let recovered = controller.update_user_location(on_route_loc, recovered_lagged); match recovered.trip_state() { @@ -893,8 +900,8 @@ mod tests { .. } => { assert!( - matches!(deviation, RouteDeviation::OffRoute { .. }), - "expected OffRoute on initial state at off-route location, got {deviation:?}" + deviation.is_completely_off_route(), + "expected CompletelyOffRoute on initial state at off-route location, got {deviation:?}" ); assert!( visual_instruction.is_none(), From 45dad3c1300f218589fa54952fbe783e0a3a1cf2 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Tue, 5 May 2026 19:02:14 +0900 Subject: [PATCH 10/13] cargo fmt --- .../src/navigation_controller/mod.rs | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/common/ferrostar/src/navigation_controller/mod.rs b/common/ferrostar/src/navigation_controller/mod.rs index 10bb5a83a..504838302 100644 --- a/common/ferrostar/src/navigation_controller/mod.rs +++ b/common/ferrostar/src/navigation_controller/mod.rs @@ -175,8 +175,7 @@ impl Navigator for NavigationController { // from it would mislead the user. `OffStepOnRoute` is intentionally not // suppressed here — the user is still on the route polyline (just on a future // step), and the step-advance flow will reconcile shortly. - let (visual_instruction, spoken_instruction) = if deviation.is_completely_off_route() - { + let (visual_instruction, spoken_instruction) = if deviation.is_completely_off_route() { (None, None) } else { (visual_instruction, spoken_instruction) @@ -397,20 +396,19 @@ impl NavigationController { // still on the route polyline, and the step-advance flow will reconcile // shortly. Apps that don't want any of this policy can configure // `RouteDeviationTracking::None`. - let (visual_instruction, spoken_instruction) = if deviation - .is_completely_off_route() - { - (None, None) - } else { - ( - current_step - .get_active_visual_instruction(progress.distance_to_next_maneuver) - .cloned(), - current_step - .get_current_spoken_instruction(progress.distance_to_next_maneuver) - .cloned(), - ) - }; + let (visual_instruction, spoken_instruction) = + if deviation.is_completely_off_route() { + (None, None) + } else { + ( + current_step + .get_active_visual_instruction(progress.distance_to_next_maneuver) + .cloned(), + current_step + .get_current_spoken_instruction(progress.distance_to_next_maneuver) + .cloned(), + ) + }; let annotation_json = current_step_geometry_index .and_then(|index| current_step.get_annotation_at_current_index(index)); From 10e11859610d91359478a3ea2ec49e3aa52ba3d8 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Wed, 6 May 2026 07:00:39 +0900 Subject: [PATCH 11/13] Fix iOS demo app --- Package.swift | 10 +++++----- apple/DemoApp/Demo/NavigationDelegate.swift | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index 88f4fb1dd..1ddece1a6 100644 --- a/Package.swift +++ b/Package.swift @@ -21,7 +21,7 @@ if useLocalFramework { binaryTarget = .binaryTarget( name: "FerrostarCoreRS", url: - "https://github.com/stadiamaps/ferrostar/releases/download/\(releaseTag)/libferrostar-rs.xcframework.zip", + "https://github.com/stadiamaps/ferrostar/releases/download/\(releaseTag)/libferrostar-rs.xcframework.zip", checksum: releaseChecksum ) } @@ -39,7 +39,7 @@ let package = Package( name: "FerrostarCore", defaultLocalization: "en", platforms: [ - .iOS(.v16), + .iOS(.v16) ], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. @@ -53,7 +53,7 @@ let package = Package( "FerrostarMapLibreUI", "FerrostarSwiftUI", "FerrostarCarPlayUI", - ] // TODO: Remove FerrostarSwiftUI from FerrostarMapLibreUI once we can fix the demo app swift package config (broken in Xcode 15.3) + ] // TODO: Remove FerrostarSwiftUI from FerrostarMapLibreUI once we can fix the demo app swift package config (broken in Xcode 15.3) ), .library( name: "FerrostarSwiftUI", @@ -102,11 +102,11 @@ let package = Package( .target( name: "FerrostarSwiftUI", dependencies: [ - .target(name: "FerrostarCore"), + .target(name: "FerrostarCore") ], path: "apple/Sources/FerrostarSwiftUI", resources: [ - .process("Resources"), + .process("Resources") ] ), .target( diff --git a/apple/DemoApp/Demo/NavigationDelegate.swift b/apple/DemoApp/Demo/NavigationDelegate.swift index d51206d97..a7ca3f0e0 100644 --- a/apple/DemoApp/Demo/NavigationDelegate.swift +++ b/apple/DemoApp/Demo/NavigationDelegate.swift @@ -10,7 +10,7 @@ class NavigationDelegate: FerrostarCoreDelegate { // TODO: Create defaults extension on FerrostarCoreDelegate } - func core(_: FerrostarCore, correctiveActionForDeviation _: Double, + func core(_: FerrostarCore, correctiveActionForDeviation _: DeviationKind, remainingWaypoints waypoints: [Waypoint]) -> CorrectiveAction { // If the user is off course, we'll try to calculate a new route using the remaining waypoints. From 174ce69c7a9cef7ea5b81eebf154bac1cfd42025 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Wed, 6 May 2026 07:46:49 +0900 Subject: [PATCH 12/13] Try fixing Android test --- .../ferrostar/core/FerrostarCoreTest.kt | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt index 63e733d7a..cbc79e379 100644 --- a/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt +++ b/android/core/src/androidTest/java/com/stadiamaps/ferrostar/core/FerrostarCoreTest.kt @@ -42,6 +42,7 @@ import uniffi.ferrostar.Waypoint import uniffi.ferrostar.WaypointAdvanceMode import uniffi.ferrostar.WaypointKind import uniffi.ferrostar.DeviationCalculationPolicy +import uniffi.ferrostar.DeviationKind import uniffi.ferrostar.stepAdvanceDistanceFromStep import uniffi.ferrostar.stepAdvanceDistanceToEndOfStep import uniffi.ferrostar.stepAdvanceManual @@ -131,14 +132,16 @@ class FerrostarCoreTest { secondaryContent = null, subContent = null, triggerDistanceBeforeManeuver = 42.0, - )), + ), + ), spokenInstructions = listOf(), duration = 0.0, annotations = null, incidents = listOf(), drivingSide = DrivingSide.RIGHT, roundaboutExitNumber = null, - )), + ), + ), ) @Test @@ -192,7 +195,8 @@ class FerrostarCoreTest { Waypoint( coordinate = GeographicCoordinate(60.5349908, -149.5485806), kind = WaypointKind.BREAK, - )), + ), + ), ) fail("Expected the request to fail") } catch (e: InvalidStatusCodeException) { @@ -248,7 +252,8 @@ class FerrostarCoreTest { Waypoint( coordinate = GeographicCoordinate(lat = 60.5349908, lng = -149.5485806), kind = WaypointKind.BREAK, - )), + ), + ), ) assertEquals(listOf(mockRoute), routes) @@ -302,7 +307,8 @@ class FerrostarCoreTest { Waypoint( coordinate = GeographicCoordinate(lat = 60.5349908, lng = -149.5485806), kind = WaypointKind.BREAK, - )), + ), + ), ) assertEquals(listOf(mockRoute), routes) @@ -363,7 +369,8 @@ class FerrostarCoreTest { Waypoint( coordinate = GeographicCoordinate(lat = 60.5349908, lng = -149.5485806), kind = WaypointKind.BREAK, - )), + ), + ), ) assertEquals(listOf(mockRoute), routes) @@ -386,11 +393,11 @@ class FerrostarCoreTest { override fun correctiveActionForDeviation( core: FerrostarCore, - deviationInMeters: Double, - remainingWaypoints: List, + deviation: DeviationKind, + remainingWaypoints: List ): CorrectiveAction { called = true - assertEquals(42.0, deviationInMeters, Double.MIN_VALUE) + assertEquals(DeviationKind.CompletelyOffRoute(42.0), deviation) return CorrectiveAction.GetNewRoutes(remainingWaypoints) } } @@ -452,14 +459,19 @@ class FerrostarCoreTest { Waypoint( coordinate = GeographicCoordinate(lat = 60.5349908, lng = -149.5485806), kind = WaypointKind.BREAK, - )), + ), + ), ) core.startNavigation( routes.first(), NavigationControllerConfig( WaypointAdvanceMode.WaypointWithinRange(100.0), - stepAdvanceDistanceFromStep(16u, 32u, DeviationCalculationPolicy.Always), + stepAdvanceDistanceFromStep( + distance = 16u, + minimumHorizontalAccuracy = 32u, + calculationPolicy = DeviationCalculationPolicy.ALWAYS, + ), stepAdvanceDistanceToEndOfStep(16u, 32u), routeDeviationTracking = RouteDeviationTracking.Custom( @@ -471,7 +483,8 @@ class FerrostarCoreTest { ): RouteDeviation { return RouteDeviation.Deviation(DeviationKind.CompletelyOffRoute(42.0)) } - }), + }, + ), CourseFiltering.RAW, ), ) From 3258bb442d086c63c0628b00046a1fc354c46474 Mon Sep 17 00:00:00 2001 From: Ian Wagner Date: Wed, 6 May 2026 08:05:19 +0900 Subject: [PATCH 13/13] swiftformat --- Package.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 1ddece1a6..88f4fb1dd 100644 --- a/Package.swift +++ b/Package.swift @@ -21,7 +21,7 @@ if useLocalFramework { binaryTarget = .binaryTarget( name: "FerrostarCoreRS", url: - "https://github.com/stadiamaps/ferrostar/releases/download/\(releaseTag)/libferrostar-rs.xcframework.zip", + "https://github.com/stadiamaps/ferrostar/releases/download/\(releaseTag)/libferrostar-rs.xcframework.zip", checksum: releaseChecksum ) } @@ -39,7 +39,7 @@ let package = Package( name: "FerrostarCore", defaultLocalization: "en", platforms: [ - .iOS(.v16) + .iOS(.v16), ], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. @@ -53,7 +53,7 @@ let package = Package( "FerrostarMapLibreUI", "FerrostarSwiftUI", "FerrostarCarPlayUI", - ] // TODO: Remove FerrostarSwiftUI from FerrostarMapLibreUI once we can fix the demo app swift package config (broken in Xcode 15.3) + ] // TODO: Remove FerrostarSwiftUI from FerrostarMapLibreUI once we can fix the demo app swift package config (broken in Xcode 15.3) ), .library( name: "FerrostarSwiftUI", @@ -102,11 +102,11 @@ let package = Package( .target( name: "FerrostarSwiftUI", dependencies: [ - .target(name: "FerrostarCore") + .target(name: "FerrostarCore"), ], path: "apple/Sources/FerrostarSwiftUI", resources: [ - .process("Resources") + .process("Resources"), ] ), .target(