Skip to content

Commit b30f727

Browse files
mapbox-github-ci-writer-3[bot]root
authored andcommitted
Changelog for Nav Core Framework v3.16.0 (#10825)
Co-authored-by: root <root@e48bf73f4572> GitOrigin-RevId: b3f3060891348de7ad60240e45b8cbcd592530f3
1 parent c2a9a4b commit b30f727

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

CHANGELOG.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,155 @@
11
# Changelog for the Mapbox Navigation SDK Core Framework for Android
22

3+
## Navigation SDK Core Framework 3.16.0 - 23 October, 2025
4+
#### Features
5+
6+
- Added `MapMatchingOptions.voiceUnits` which allows applications to specify the unit system used for voice instructions in Map Matching.
7+
- Delay the start of the predictive cache when tiles are requested #6684
8+
- Added `AdasEdgeAttributes#isBuiltUpArea` and `AdasEdgeAttributes#roadItems` properties.
9+
- Added a new `RoadObjectMatcherOptions` class that configures the road object matching behavior. Available through the `NavigationOptions` class.
10+
- Added `RouteCalloutUiStateProvider` class that allows to listen to Route Callout UI data.
11+
Normally, route callouts are drawn under the hood in NavSDK when this feature is enabled in `MapboxRouteLineApiOptions`.
12+
However, there might be cases when app wants to only get the callout data from NavSDK and attach the DVA itself.
13+
An example of such a case is using Mapbox Maps SDK Compose extensions: attaching a DVA for
14+
Compose MapboxMap is done via [compose-specific API](https://docs.mapbox.com/android/maps/examples/compose/dynamic-view-annotations/),
15+
which is not currently supported by NavSDK.
16+
In this case you may listen to `RouteCalloutUiStateData` updates via `RouteCalloutUiStateProvider` and use its information by attach a DVA.
17+
- Added experimental overloads for `MapboxManeuverApi#getRoadShields` and `MapboxRouteShieldApi#getRouteShields` that accept a `ShieldFontConfig` parameter, enabling custom font selection for route shields.
18+
- Added experimental `MapboxNavigationSVGExternalFileResolver` that can resolve fonts for SVG rendering from assets or use system fonts.
19+
- Updated `MapboxNavigation.replanRoute()` to now accept a new optional parameter of type `ReplanRoutesCallback`.
20+
- Added ability to filter by data source in EV charging station search operations.
21+
- Added `MapboxSpeedZoneInfo` class to represent speed zone information. Available through `UpcomingCamerasObserver::onSpeedZoneInfo` and `RoadCamerasMapCallback::onSpeedZoneInfo` callbacks.
22+
- Added experimental support for ADAS tiles in the predictive cache. See `PredictiveCacheNavigationOptions` for more information.
23+
- Added support for Android 16 KB page-size devices. To consume SDK compatible with NDK 27 you need to add `-ndk27` suffix to the artifact name, for example, `com.mapbox.navigationcore:navigation` -> `com.mapbox.navigationcore:navigation-ndk27`.
24+
- Added method overload `TilesetDescriptorFactory#getLatest(Boolean)` that allows to specify whether to include ADAS tiles.
25+
- Extracted TTS functionality into a new module `audio`.
26+
- DR improvements - more robust models for GNSS trust, road calibration, and wheel speed trust;
27+
- Improve main thread utilization by removing unintended locks (visible on systems with overloaded CPU)
28+
- Disable the defaults for collection of tunnel/bridge subgraphs in free drive. The clients will need to specify explicitly which objects to collect via AlertServiceOptions in the public SDK interface.
29+
- Added support of immediate update of location puck bearing in [NavigationLocationProvider] in case of overlapping key points.
30+
- `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.
31+
- Added `MapboxRoadCamera::activeGuidanceInfo`, containing information about the route id, leg index, geometry index and step intersection of the camera in active guidance.
32+
- ⚠️ Breaking changes in Experimental API. `MapboxEvSearchClientFactory.#getInstance()` no longer accepts access token as a parameter. The default `MapboxOptions.accessToken` will be used.
33+
- `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`.
34+
- Used legacy/custom date primitives in EV modules to support older Android API levels.
35+
- 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.
36+
- Added default location providers.
37+
- Added `EvBusyChargingStationNotificationProvider` to notify when the EV is charging station is busy and propose alternative route.
38+
- Added experimental `NavigationPerformance#performanceTracingEnabled` which enables/disables internal performance trace sections.
39+
- Add `MapboxRoadCamera::inOnRoute` flag which indicates if the roiad camera is on the current route.
40+
- Add `MapboxRoadCamerasDisplayConfig::showOnlyOnRoute` config parameter to display only road cameras on the route.
41+
- Added support for EV charge point tariffs accessible via `EvStation.tariffs`.
42+
- New experimental property `LocationMatcherResult.correctedLocationData` is available.
43+
- New experimental function `GraphAccessor.getAdasisEdgeAttributes()` is available. It returns ADAS attributes for the requested edge.
44+
- Expose road type in the `MapboxRoadCamera`
45+
- Added support for section control speed cameras.
46+
- Extended `MapboxTripProgressApi` to provide information about time zone at leg/route destination.
47+
- Added `TripProgressUpdateFormatter.getEstimatedTimeToArrival` overload that formats ETA using a given time zone.
48+
- Added curvatures support on intersections in ADAS tiles
49+
- Reduced amount of error logs
50+
- Added periodic logs of Navigator/Cache configs
51+
- Added support for wheel speed usage during no signal simulation to determine passed distance for mobile profile
52+
- Improved off road transitions
53+
- :warning: Breaking changes in Experimental API `MapboxRouteCalloutView#renderCallouts(RouteCalloutData,MapboxRouteLineView)`. It's required to associate Route line with Callout View.
54+
- Added experimental `SearchAlongRouteUtils` class to optimize search along routes scenario by providing optimally selected points.
55+
- Added experimental `RoutingTilesOptions#hdTilesOptions` to configure HD tiles endpoint.
56+
- `DataInputsManager` now can be used from any thread.
57+
- Added experimental Road Cameras modules to provide notifications about road cameras along the route and show them on the map.
58+
- Added option to display the route line with a blur effect.
59+
- 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.
60+
- 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)
61+
- Added experimental `NavigationRoute#routeRefreshMetadata` which contains data related to refresh of the route object. [#6736](https://github.com/mapbox/mapbox-navigation-android/pull/6736)
62+
- 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)
63+
- 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)
64+
- 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)
65+
- 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)
66+
- 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)
67+
- The `PredictiveCacheController(PredictiveCacheOptions)` constructor is now deprecated. Use `PredictiveCacheController(MapboxNavigation, PredictiveCacheOptions)` instead. [#6376](https://github.com/mapbox/mapbox-navigation-android/pull/6376)
68+
- Added `NavigationScaleGestureHandlerOptions#followingRotationAngleThreshold` that define threshold angle for rotation for `FOLLOWING` Navigation Camera state. [#6234](https://github.com/mapbox/mapbox-navigation-android/pull/6234)
69+
- Added the ability to filter road names based on the system language [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163)
70+
- `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)
71+
- Now `EHorizonResultType.Type` has a new element called `EHorizonResultType.NOT_AVAILABLE`. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
72+
- 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)
73+
- Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration [#2743](https://github.com/mapbox/mapbox-navigation-android/pull/2743)
74+
- 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)
75+
- 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)
76+
for example enabling avoid ferries.
77+
- 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)
78+
- Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache. [#5615](https://github.com/mapbox/mapbox-navigation-android/pull/5615)
79+
- [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)
80+
- 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)
81+
- 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)
82+
- Added `RerouteStrategyForMapMatchedRoutes` to `RerouteOptions`. Reroute option `enableLegacyBehaviorForMapMatchedRoute` was removed, use `NavigateToFinalDestination` strategy instead. [#5256](https://github.com/mapbox/mapbox-navigation-android/pull/5256)
83+
84+
#### Bug fixes and improvements
85+
86+
- Fixed Android Auto build for the NDK 27 compatible variant
87+
- Fix the bug that causes road cameras on alternative routes to not be removed from the road when its road is not active or passed during active guidance.
88+
- Fix ADAS tiles loading for ambient cache without consumer #7128
89+
- Improved Visual Turn Experience in Active Guidance and Free-Drive for High-Frequency Input #3863
90+
- The crash happens on route parsing with the steps=false #6889
91+
- Support settings for per-level routing tiles compression #6622
92+
#### Known issues :warning:
93+
- Fix the bug that causes road cameras on alternative routes to be marked as passed but not removed from the map.
94+
- Fixed the incorrect order of callbacks when notifying about road cameras on the route.
95+
- Optimize the `MapboxRouteArrowView` to skip re-rendering arrows that have not changed.
96+
- Decrased excessively high GeoJSON buffer size from 128 to 32 to improve the memory footprint.
97+
- Avoid unnecessary navigation arrow GeoJSON updates
98+
- Optimized camera animations that involve significant zoom change.
99+
- Fixed an issue where the closer part of route line might have been overlapped by a farther part in case they covered the same space within a single leg (e. g. U-turns on narrow roads).
100+
- Don't reset the re-route request when on-route/off-route events are flaky.
101+
- Use the `enhancedLocation` in the RoadCamerasManager class to get a more accurate current speed for the vehicle.
102+
- Fixed an issue where after a reroute the vanishing point on the route line might have been ahead of the actual vehicle's position.
103+
- Added `HistoryRecorderOptions#shouldRecordRouteLineEvents` property to enable/disable route line events collection for manual recording (see `CopilotOptions#shouldRecordRouteLineEvents` for the same functionality with Copilot); it is disabled by default.
104+
- Fixed an issue where the Speed Camera notification would appear prematurely when the car's speed was 0.
105+
- Fix Route replayer: normalize bearing values to be in the range of [0..360) degrees.
106+
- Fixed a bug where alternative routes from `RoutesUpdatedResult#ignoredRoutes` were set to `RoutesUpdatedResult#navigationRoutes` after the first route progress update.
107+
- Fix when already passed part of route appears behind CCP
108+
- Fixed a crash that happened on foreground service start on Android APIs 28 and below.
109+
- Deprecated EstimatedTimeToArrivalFormatter and introduced EstimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone.
110+
- Deprecated TripProgressUpdateFormatter.estimatedTimeToArrivalFormatter and introduced TripProgressUpdateFormatter.estimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone.
111+
- Fixed `MapboxNavigationSDKInitializerImpl` logic so that `uxfKey` is properly retrieved and sent over.
112+
- Fixed the condition for verifying the last good signal state in the offroad detection logic
113+
- Fixed incorrect calculation of a "missing part" of the route causing all lanes to be mark as divergent
114+
- Fixed EHorizon rural road objects sometimes marked as urban
115+
- Fixed a bug that happened during reroute in case if initial route was requested with `approaches` option specified.
116+
- Improved reroute and alternative routes behavior
117+
- Fixed map matching bug after leaving a tunnel
118+
- Increased route stickiness in dead reckoning mode
119+
- Added ability to send raw unfused GNSS location in addition to fused one
120+
- Improved odometry and road graph fusing in urban canyons
121+
- Signature of experimental `RawGnssSatelliteData` has been changed, now it requires `residual` as a constructor parameter
122+
- Experimental `RawGnssLocation` type has been removed, now `RawGnssData` requires `DilutionOfPrecision` as a parameter
123+
- Now service type is specified explicitly when foreground location service starts.
124+
- Nav SDK now removes passed alternative routes as soon as user passed fork point. [#6813](https://github.com/mapbox/mapbox-navigation-android/pull/6813)
125+
- 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)
126+
- 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)
127+
- Fixed `CarSearchLocationProvider` produces _NullPointerException_ when using Mapbox Search SDK. [#6702](https://github.com/mapbox/mapbox-navigation-android/pull/6702)
128+
- Fixed an issue preventing Copilot from correctly recording history events. [#6787](https://github.com/mapbox/mapbox-navigation-android/pull/6787)
129+
- Improved reroute and alternative routes behavior [#6989](https://github.com/mapbox/mapbox-navigation-android/pull/6989)
130+
- 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)
131+
- 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)
132+
- Fixed the issue of unwanted rerouting occurring immediately after setting a new route [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163)
133+
- Fixed a crash caused by an overflow in the JNI global reference table. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
134+
- 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)
135+
- Addressed several issues that occurred when switching to an alternative route. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
136+
- 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)
137+
- Fixed UI jank caused by on-device TextToSpeech player. [#5638](https://github.com/mapbox/mapbox-navigation-android/pull/5638)
138+
- 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)
139+
- Improve performance when handling large road objects on the eHorizon's MPP. [#6014](https://github.com/mapbox/mapbox-navigation-android/pull/6014)
140+
- Fixed `Routes` that origin is out of primary route cannot be added as alternatives. [#5848](https://github.com/mapbox/mapbox-navigation-android/pull/5848)
141+
- Fixed a crash due to incorrect OpenLR input data [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400)
142+
- Fixed a bug with spinning smoothed coordinate [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400)
143+
- 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.
144+
145+
### Mapbox dependencies
146+
This release depends on, and has been tested with, the following Mapbox dependencies:
147+
- Mapbox Maps SDK `v11.16.0` ([release notes](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.16.0))
148+
- Mapbox Navigation Native `v324.16.0`
149+
- Mapbox Core Common `v24.16.0`
150+
- Mapbox Java `v7.8.0` ([release notes](https://github.com/mapbox/mapbox-java/releases/tag/v7.8.0))
151+
152+
3153
## Navigation SDK Core Framework 3.16.0-rc.2 - 17 October, 2025
4154
#### Features
5155

0 commit comments

Comments
 (0)