|
1 | 1 | # Changelog for the Mapbox Navigation SDK Core Framework for Android
|
2 | 2 |
|
| 3 | +## Navigation SDK Core Framework 3.10.0 - 19 June, 2025 |
| 4 | +#### Features |
| 5 | +- Improve road graph calibration in Dead Reckoning for more accurate localization in tunnel and urban canyon. |
| 6 | +- Improve wheel speed filtering for a more accurate trajectory in Dead Reckoning. |
| 7 | +- Introduced performance trace points for navigation |
| 8 | +- Added filtering inaccurate wheel speed for Dead Reckoning to reduce possible location jumps in case of wheel slippage |
| 9 | +- Added provide the latest tiles version when tileset descriptors requested with empty version. |
| 10 | +- Added support for delta updates for routing and ADAS tiles |
| 11 | +- Added reading of life-traffic-service and reporting them to ADASIS traffic events |
| 12 | +- Improved heading interpolation |
| 13 | +- Now `SensorData.Weather` can be instantiated with a list of `@WeatherCondition.Type` or detailed weather information represented by `@WeatherDetail.Type`. |
| 14 | +- ⚠️ Breaking changes in Experimental API. `SensorData.Weather` no longer has public property `conditionType` |
| 15 | +- `RoadCamerasManager` in active guidance now relies on new `road_camera` Directions API annotation, which improves the performance of the camera data retrieval and quality of the data. |
| 16 | +- Added `MapboxRoadCamera::activeGuidanceInfo`, containing information about the route id, leg index, geometry index and step intersection of the camera in active guidance. |
| 17 | +- Added support of immediate update of location puck bearing in [NavigationLocationProvider] in case of overlapping key points. |
| 18 | +- ⚠️ Breaking changes in Experimental API. `MapboxEvSearchClientFactory.#getInstance()` no longer accepts access token as a parameter. The default `MapboxOptions.accessToken` will be used. |
| 19 | +- `CarPlaceSearchOptions.accessToken` and corresponding builder function has been deprecated because `accessToken` is no longer in use as the search component now uses the default `MapboxOptions.accessToken`. |
| 20 | +- Used legacy/custom date primitives in EV modules to support older Android API levels. |
| 21 | +- Added `DriverNotification`, `DriverNotificationProvider` interfaces with `EvBetterRouteNotificationProvider` and `SlowTrafficNotificationProvider` implementations. Add new `DriverNotificationManager` API to attach or detach providers and `DriverNotificationManager.observeDriverNotification()` to handle the flow of driver notifications. |
| 22 | +- Added default location providers. |
| 23 | +- Added `EvBusyChargingStationNotificationProvider` to notify when the EV is charging station is busy and propose alternative route. |
| 24 | +- Added experimental `NavigationPerformance#performanceTracingEnabled` which enables/disables internal performance trace sections. |
| 25 | +- Add `MapboxRoadCamera::inOnRoute` flag which indicates if the roiad camera is on the current route. |
| 26 | +- Add `MapboxRoadCamerasDisplayConfig::showOnlyOnRoute` config parameter to display only road cameras on the route. |
| 27 | +- Added support for EV charge point tariffs accessible via `EvStation.tariffs`. |
| 28 | +- New experimental property `LocationMatcherResult.correctedLocationData` is available. |
| 29 | +- New experimental function `GraphAccessor.getAdasisEdgeAttributes()` is available. It returns ADAS attributes for the requested edge. |
| 30 | +- Expose road type in the `MapboxRoadCamera` |
| 31 | +- Added support for section control speed cameras. |
| 32 | +- Extended `MapboxTripProgressApi` to provide information about time zone at leg/route destination. |
| 33 | +- Added `TripProgressUpdateFormatter.getEstimatedTimeToArrival` overload that formats ETA using a given time zone. |
| 34 | +- Added curvatures support on intersections in ADAS tiles |
| 35 | +- Reduced amount of error logs |
| 36 | +- Added periodic logs of Navigator/Cache configs |
| 37 | +- Added support for wheel speed usage during no signal simulation to determine passed distance for mobile profile |
| 38 | +- Improved off road transitions |
| 39 | +- :warning: Breaking changes in Experimental API `MapboxRouteCalloutView#renderCallouts(RouteCalloutData,MapboxRouteLineView)`. It's required to associate Route line with Callout View. |
| 40 | +- Added experimental `SearchAlongRouteUtils` class to optimize search along routes scenario by providing optimally selected points. |
| 41 | +- Added experimental `RoutingTilesOptions#hdTilesOptions` to configure HD tiles endpoint. |
| 42 | +- `DataInputsManager` now can be used from any thread. |
| 43 | +- Added experimental Road Cameras modules to provide notifications about road cameras along the route and show them on the map. |
| 44 | +- Added option to display the route line with a blur effect. |
| 45 | +- Added experimental functions `MapboxNavigation#startTripSessionWithPermissionCheck()` and `MapboxNavigation#startReplayTripSessionWithPermissionCheck` that immediately throw `IllegalStateException` if they are called with `withForegroundService` parameter set to true, but Android foreground service permissions requirements are not met. |
| 46 | +- Added support for SVG junction views, see `MapboxJunctionApi#generateJunction(instructions: BannerInstructions, @JunctionViewFormat format: String, consumer: MapboxNavigationConsumer<Expected<JunctionError, JunctionViewData>>)`. [#6803](https://github.com/mapbox/mapbox-navigation-android/pull/6803) |
| 47 | +- Added experimental `NavigationRoute#routeRefreshMetadata` which contains data related to refresh of the route object. [#6736](https://github.com/mapbox/mapbox-navigation-android/pull/6736) |
| 48 | +- Signature of experimental `EtcGateApi#updateEtcGateInfo` function has been changed, now it accepts `EtcGateApi.EtcGateInfo` as a function parameter. [#6508](https://github.com/mapbox/mapbox-navigation-android/pull/6508) |
| 49 | +- Experimental Data Inputs functionality has been removed from the `core` module to a separate `datainputs` module (`MapboxNavigation#dataInputs` and everything from the package `com.mapbox.navigation.datainputs` have been removed). [Contact us](https://www.mapbox.com/support) to get more information on how to get access to the module. [#6508](https://github.com/mapbox/mapbox-navigation-android/pull/6508) |
| 50 | +- Experimental Adasis functionality has been removed from the `core` module (`MapboxNavigation`'s functions `setAdasisMessageObserver`, `resetAdasisMessageObserver`, `updateExternalSensorData`, and `GraphAccessor#getAdasisEdgeAttributes` have been removed). [Contact us](https://www.mapbox.com/support) in case you're interested in ADASIS functionality. [#6508](https://github.com/mapbox/mapbox-navigation-android/pull/6508) |
| 51 | +- Added experimental `RoutingTilesOptions#fallbackNavigationTilesVersion` which lets define version of navigation tiles to fallback in case of offline routing failure with navigation tiles defined in `RoutingTilesOptions#tilesVersion`. [#6475](https://github.com/mapbox/mapbox-navigation-android/pull/6475) |
| 52 | +- Added experimental `MapboxRouteLineViewOptions#fadeOnHighZoomsConfig` and `MapboxRouteArrowOptions#fadeOnHighZoomsConfig` to configure smooth fading out of route line or/and arrows on high zoom levels. [#6367](https://github.com/mapbox/mapbox-navigation-android/pull/6367) |
| 53 | +- The `PredictiveCacheController(PredictiveCacheOptions)` constructor is now deprecated. Use `PredictiveCacheController(MapboxNavigation, PredictiveCacheOptions)` instead. [#6376](https://github.com/mapbox/mapbox-navigation-android/pull/6376) |
| 54 | +- Added `NavigationScaleGestureHandlerOptions#followingRotationAngleThreshold` that define threshold angle for rotation for `FOLLOWING` Navigation Camera state. [#6234](https://github.com/mapbox/mapbox-navigation-android/pull/6234) |
| 55 | +- Added the ability to filter road names based on the system language [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163) |
| 56 | +- `com.mapbox.navigation.base.road.model.RoadComponent` objects that contain only slashes in their text are filtered out [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163) |
| 57 | +- Now `EHorizonResultType.Type` has a new element called `EHorizonResultType.NOT_AVAILABLE`. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290) |
| 58 | +- Old `MapboxNavigation.postUserFeedback()` functions have been deprecated, use an overloading that accepts `UserFeedback` as a parameter. [#5781](https://github.com/mapbox/mapbox-navigation-android/pull/5781) |
| 59 | +- Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration [#2743](https://github.com/mapbox/mapbox-navigation-android/pull/2743) |
| 60 | +- Optimized memory usage in Directions API model classes by interning frequently occurring strings in JSON. [#5854](https://github.com/mapbox/mapbox-navigation-android/pull/5854) |
| 61 | +- Added experimental `MapboxNavigation#replanRoute` to handle cases when user changes route options during active guidance, [#5286](https://github.com/mapbox/mapbox-navigation-android/pull/5286) |
| 62 | +for example enabling avoid ferries. |
| 63 | +- Added `DataInputsManager` to allow the provision of data from external sensors to the navigator, see `MapboxNavigation.dataInputsManager`. Experimental `EtcGateInfo` has been moved to `com.mapbox.navigation.core.datainputs` package. `EtcGateApi` has been deprecated. [#5957](https://github.com/mapbox/mapbox-navigation-android/pull/5957) |
| 64 | +- Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache. [#5615](https://github.com/mapbox/mapbox-navigation-android/pull/5615) |
| 65 | +- [BREAKING CHANGE] `PredictiveCacheOptions.unrecognizedTilesetDescriptorOptions` has been renamed to `PredictiveCacheOptions.predictiveCacheSearchOptionsList`. Additionally, `PredictiveCacheUnrecognizedTilesetDescriptorOptions` has been renamed to `PredictiveCacheSearchOptions`. Now, only search-related options can be passed to `PredictiveCacheSearchOptions`. [#5244](https://github.com/mapbox/mapbox-navigation-android/pull/5244) |
| 66 | +- Introduced experimental traffic adjustment mechanism during a drive and added `TrafficOverrideOptions` to control this feature [#2811](https://github.com/mapbox/mapbox-navigation-android/pull/2811) |
| 67 | +- Changed `Alternatives` that deviate close to a destination point are removed before a fork is reached. [#5848](https://github.com/mapbox/mapbox-navigation-android/pull/5848) |
| 68 | +- Added `RerouteStrategyForMapMatchedRoutes` to `RerouteOptions`. Reroute option `enableLegacyBehaviorForMapMatchedRoute` was removed, use `NavigateToFinalDestination` strategy instead. [#5256](https://github.com/mapbox/mapbox-navigation-android/pull/5256) |
| 69 | + |
| 70 | +#### Bug fixes and improvements |
| 71 | +- Fixed cancel reroute on setting a route. |
| 72 | +- Fixed an issue where after a reroute the vanishing point on the route line might have been ahead of the actual vehicle's position. |
| 73 | +- Fixed incorrect route request with user added charging station |
| 74 | +- Fixed incorrect edge expansion during simulation by teleporting |
| 75 | +- Improved behavior on roundabouts: avoid cases when the vehicle position circles around the roundabout in case of matching errors |
| 76 | +- Fixed re-enabling route refresh after leg change |
| 77 | +- Removed caching of mapbox access token |
| 78 | +- Fixed a bug where alternative routes from `RoutesUpdatedResult#ignoredRoutes` were set to `RoutesUpdatedResult#navigationRoutes` after the first route progress update. |
| 79 | +- Fixed a crash that happened on foreground service start on Android APIs 28 and below. |
| 80 | +- Deprecated EstimatedTimeToArrivalFormatter and introduced EstimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone. |
| 81 | +- Deprecated TripProgressUpdateFormatter.estimatedTimeToArrivalFormatter and introduced TripProgressUpdateFormatter.estimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone. |
| 82 | +- Fixed `MapboxNavigationSDKInitializerImpl` logic so that `uxfKey` is properly retrieved and sent over. |
| 83 | +- Fixed the condition for verifying the last good signal state in the offroad detection logic |
| 84 | +- Fixed incorrect calculation of a "missing part" of the route causing all lanes to be mark as divergent |
| 85 | +- Fixed EHorizon rural road objects sometimes marked as urban |
| 86 | +- Fixed a bug that happened during reroute in case if initial route was requested with `approaches` option specified. |
| 87 | +- Improved reroute and alternative routes behavior |
| 88 | +- Fixed map matching bug after leaving a tunnel |
| 89 | +- Increased route stickiness in dead reckoning mode |
| 90 | +- Added ability to send raw unfused GNSS location in addition to fused one |
| 91 | +- Improved odometry and road graph fusing in urban canyons |
| 92 | +- Signature of experimental `RawGnssSatelliteData` has been changed, now it requires `residual` as a constructor parameter |
| 93 | +- Experimental `RawGnssLocation` type has been removed, now `RawGnssData` requires `DilutionOfPrecision` as a parameter |
| 94 | +- Now service type is specified explicitly when foreground location service starts. |
| 95 | +- Nav SDK now removes passed alternative routes as soon as user passed fork point. [#6813](https://github.com/mapbox/mapbox-navigation-android/pull/6813) |
| 96 | +- Fixed a potential route line layers visibility race, which might have happened if you invoked `MapboxRouteLineView#showPrimaryRoute` and `MapboxRouteLineView#renderRouteDrawData` approximately at the same time. [#6751](https://github.com/mapbox/mapbox-navigation-android/pull/6751) |
| 97 | +- Optimized CA routes handling by skiping route parsing if it's already exist in direction session [#6868](https://github.com/mapbox/mapbox-navigation-android/pull/6868) |
| 98 | +- Fixed `CarSearchLocationProvider` produces _NullPointerException_ when using Mapbox Search SDK. [#6702](https://github.com/mapbox/mapbox-navigation-android/pull/6702) |
| 99 | +- Fixed an issue preventing Copilot from correctly recording history events. [#6787](https://github.com/mapbox/mapbox-navigation-android/pull/6787) |
| 100 | +- Improved reroute and alternative routes behavior [#6989](https://github.com/mapbox/mapbox-navigation-android/pull/6989) |
| 101 | +- Fixed a bug causing some history files recorded during the previous app sessions not to be uploaded by the Copilot. [#6359](https://github.com/mapbox/mapbox-navigation-android/pull/6359) |
| 102 | +- Fixed an issue where native memory was not being properly released after the `MapboxNavigation` object was destroyed. [#6376](https://github.com/mapbox/mapbox-navigation-android/pull/6376) |
| 103 | +- Fixed the issue of unwanted rerouting occurring immediately after setting a new route [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163) |
| 104 | +- Fixed a crash caused by an overflow in the JNI global reference table. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290) |
| 105 | +- Fixed an issue with vignettes in Romania and Bulgaria for offline routing when tolls are excluded. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290) |
| 106 | +- Addressed several issues that occurred when switching to an alternative route. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290) |
| 107 | +- Implementation of `RerouteController#registerRerouteStateObserver` now invokes observer immediately with current state instead of posting invocation to the main looper. [#5286](https://github.com/mapbox/mapbox-navigation-android/pull/5286) |
| 108 | +- Fixed UI jank caused by on-device TextToSpeech player. [#5638](https://github.com/mapbox/mapbox-navigation-android/pull/5638) |
| 109 | +- Removed `PredictiveCacheController#removeSearchControllers` and `PredictiveCacheController#createSearchControllers`. Now search predictive cache controller is created and destroyed together with `PredictiveCacheController` instance if `PredictiveCacheOptions.predictiveCacheSearchOptionsList` is provided. [#5714](https://github.com/mapbox/mapbox-navigation-android/pull/5714) |
| 110 | +- Improve performance when handling large road objects on the eHorizon's MPP. [#6014](https://github.com/mapbox/mapbox-navigation-android/pull/6014) |
| 111 | +- Fixed `Routes` that origin is out of primary route cannot be added as alternatives. [#5848](https://github.com/mapbox/mapbox-navigation-android/pull/5848) |
| 112 | +- Fixed a crash due to incorrect OpenLR input data [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400) |
| 113 | +- Fixed a bug with spinning smoothed coordinate [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400) |
| 114 | +- Fixed issue for calculating the trim-offset value for the vanishing route line feature when the current geometry index emitted by route progress is greater than the value expected. |
| 115 | + |
| 116 | +### Mapbox dependencies |
| 117 | +This release depends on, and has been tested with, the following Mapbox dependencies: |
| 118 | +- Mapbox Maps SDK `v11.13.1` ([release notes](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.13.1)) |
| 119 | +- Mapbox Navigation Native `v324.13.1` |
| 120 | +- Mapbox Core Common `v24.13.1` |
| 121 | +- Mapbox Java `v7.4.0` ([release notes](https://github.com/mapbox/mapbox-java/releases/tag/v7.4.0)) |
| 122 | + |
| 123 | + |
3 | 124 | ## Navigation SDK Core Framework 3.10.0-rc.1 - 06 June, 2025
|
4 | 125 | #### Features
|
5 | 126 | - Introduced performance trace points for navigation
|
|
0 commit comments