Releases
v3.0.2 latest - 26 April, 2024
- Continuous alternatives request behaviour improved: always do periodical requests and notify server with requests context and reason to serve better alternatives
- Made RerouteState.Failed retryable in case reroute failed due to not having yet received a route progress for a new route that had just been set. Mapbox dependencies:
- Mapbox Maps SDK
v11.3.1
(release notes) - Mapbox Navigation Native
v306.0.1
- Mapbox Core Common
v24.3.1
- Mapbox Java
v6.15.0
(release notes)
v1.0.0-beta.1 - 13 December, 2023
v1.0.0-beta.2 - 22 December, 2023
v1.0.0-beta.3 - 19 January, 2024
Changelog
- Introduced support of Mapbox Map Matching API, see
MapboxNavigation#requestMapMatching
. - Support more options for
MapMatchingOptions
. - Made
MapboxNavigation
constructor andonDestroy
internal. To create an instance ofMapboxNavigation
useMapboxNavigationProvider#create
; to destroy it useMapboxNavigationProvider#destroy
.
v1.0.0-beta.4 - 26 January, 2024
Changelog
- Improved
CustomRouterRule
to work independently from device network setup. - Removed
CustomRouterRule#baseUrl
. NowCustomRouterRule
intercepts all route and route refresh requests to Mapbox Directions API. - Fixed a bug with multiple instances of cache which resulted in excessive memory consumption.
- Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter.
- Improved Map Matching to avoid false deviation of the location puck to a parallel street.
- Improved handling of no storage available during navigation tiles downloading.
- Improved handling of invalid config in
DeviceProfile#customConfig
. - Fixed a native crash in E-Horizon implementation caused by internal race condition.
- Made
MapboxReplayer
constructor public. - Removed
OnlineRouteAlternativesSwitch
. UseNavigationRouteAlternativesObserver
to receive an online alternative for the current offline route. UnlikeOnlineRouteAlternativesSwitch
,NavigationRouteAlternativesObserver
doesn't switch to an online alternative automatically. - Changed structure of
NavigationRoute
. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API.NavigationRoute#directionsResponse
has been removed. UseNavigationRoute#waypoints
,NavigationRoute#responseUUID
, andNavigationRoute#responseMetadata
to access data which used to be available viaNavigationRoute#directionsResponse
.NavigationRoute#routeOptions
has been removed. Try to utilise data available inNavigationRoute
, for example instead of using coordinates from route options, useNavigationRoute#waypoints
. Temporary propertyNavigationRoute#evMaxCharge
has been added to access maximum possible charge for the vehicle the route was requested for instead ofnavigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge")
. - Added
MapMatchingSuccessfulResult#navigationRoutes
which represent routes that could be set to navigator usingMapboxNavigation#setNavigationRoutes
. - Changed type of
MapMatchingSuccessfulResult#matches
fromList<NavigationRoute>
toList<MapMatchingMatch>
. Now every item fromMapMatchingSuccessfulResult#matches
represents a Match Object from Mapbox Map Matching API. - Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. In order to set a custom location provider, you now need to invoke
LocationOptions.Builder#locationProviderFactory
and pass a factory that will create a DeviceLocationProvider implementation based on a request parameter together will location provider type, which can be one of: REAL, MOCKED, MIXED. Note that if your provider can emit non-real locations, it must setisMock
extra flag value to true for such locations. To set this flag, use:
Location.Builder#extra(Value.valueOf(hashMapOf(LocationExtraKeys.IS_MOCK to Value.valueOf(true/false))))
- Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API.
- Added
NavigationViewApi#recenterCamera()
that allows to programatically recenter the camera position as if the recenter button was clicked.
v1.0.0-beta.5 - 02 February, 2024
Changelog
- The
maneuver
module now offers only API related to maneuver logic. Views was removed from the module MapboxRecenterButton
,MapboxRouteOverviewButton
,MapboxRoadNameView
,MapboxCameraModeButton
have been removed from ui-maps module.MapboxExtendableButtonLayoutBinding
has been removed fromui-base
module.- New module
libnavigation-tripdata
is available. It accumulates core api fromlibnavui-shield
,libnavui-tripprogress
,libnavui-maneuver
,libnavui-speedlimit
modules, which have been removed. - Introduced support for highlighting 3D buildings.
- Navigation Core Framework doesn't let creating
NavigationRoute
from json anymore. UseMapboxNavigation#requestRoutes
andMapboxNavigation#requestMapMatching
to requestNavigationRoute
s. - Added
NavigationRoute#serialize
andNavigationRoute#deserializeFrom
to support immediate transfer ofNavigationRoute
between applications and processes with the same Navigation Core Framework version. - Fixed crash in CustomRouterRule caused by invalid url schema in request
v1.0.0-rc.1 - 06 February, 2024
Changelog
- Changed type of
RouterOrigin
. Now it's an annotation which defines possible string values for router origin. RouterOrigin.Offboard
is renamed toRouterOrigin.ONLINE
.RouterOrigin.Onboard
is renamed toRouterOrigin.OFFLINE
.RouterOrigin.Custom
is removed.- Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register
RoutesObserver
to keep track of current routes. UseMapboxNavigation#setContinuousAlternativesEnabled
to enable/disable automatic update. NavigationRouteAlternativesObserver
,RouteAlternativesObserver
,NavigationRouteAlternativesRequestCallback
,MapboxNavigation#registerRouteAlternativesObserver
,MapboxNavigation#requestAlternativeRoutes
were removed in favour of automatic alternatives update.libnav-ui
module has been renamed tolibnavigation-voice
. Package name has been changed tocom.mapbox.navigation.voice
.- Added support for
RouteOptions#suppressVoiceInstructionLocalNames
to onboard router. - Changed the semantics of
Location#timestamp
that you receive inonLocationMatcherResult
, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time. - Implement ADASIS message batching.
- Split
MapboxRouteLineOptions
intoMapboxRouteLineApiOptions
andMapboxRouteLineViewOptions
. - Split
MapboxRouteLineOptions#displayRestrictedRoadSections
intoMapboxRouteLineApiOptions#calculateRestrictedRoadSections
andMapboxRouteLineViewOptions#displayRestrictedRoadSections
. You can have a set-up where some of yourMapboxRouteLineView
s display the restricted data and others don't. SetMapboxRouteLineApiOptions#calculateRestrictedRoadSections
if at least one of yourMapboxRouteLineView
s will display the restricted data. SetMapboxRouteLineViewOptions#displayRestrictedRoadSections
only to those views, who are going to display it. - Moved:
MapboxRouteLineOptions.Builder#withRouteLineBelowLayerId
toMapboxRouteLineViewOptions.Builder#routeLineBelowLayerId
;MapboxRouteLineOptions.Builder#withTolerance
toMapboxRouteLineViewOptions.Builder#tolerance
;MapboxRouteLineOptions.Builder#withVanishingRouteLineEnabled
toMapboxRouteLineApiOptions.Builder#vanishingRouteLineEnabled
;MapboxRouteLineOptions#styleInactiveRouteLegsIndependently
,MapboxRouteLineOptions#vanishingRouteLineEnabled
andMapboxRouteLineOptions#vanishingRouteLineUpdateIntervalNano
toMapboxRouteLineApiOptions
.MapboxRouteLineOptions#softGradientTransition
,MapboxRouteLineOptions#displaySoftGradientForTraffic
,MapboxROuteLineOptions#shareLineGeometrySources
,MapboxRouteLineOptions#lineDepthOcclusionFactor
,MapboxRouteLineOptions#waypointLayerIconOffset
,MapboxRouteLineOptions#waypointLayerIconAnchor
andMapboxRouteLineOptions#iconPitchAlignment
toMapboxRouteLineViewOptions
.
- Removed
RouteLineResources
class:
routeLineColorResources
,originWaypointIcon
,destinationWaypointIcon
,restrictedRoadDashArray
,restrictedRoadOpacity
andrestrictedRoadLineWidth
were moved toMapboxRouteLineViewOptions
trafficBackfillRoadClasses
was moved toMapboxRouteLineApiOptions
scaleExpression
properties were moved toMapboxRouteLineViewOptions#scaleExpressions
wrapper of typeRouteLineScaleExpressions
roundedLineCap
property was removed
- Moved
congestionRange
properties fromRouteLineColorResources
toMapboxRouteLineApiOptions
. - Removed
MapboxRouteLineOptions#routeStyleDescriptors
option. - Removed the possibility of modify and reading data from
RouteLineSetValue
,RouteLineClearValue
andRouteLineUpdateValue
. Do not use these classes on your side, just pass the objects betweenMapboxRouteLineAPI
andMapboxRouteLineView
. MapboxRouteLineAPI#options
andMapboxRouteLineView#options
properties are no longer public.- Made
RouteLineExpressionProvider
andRouteLineTrimExpressionProvider
internal. - Added a possibility to change a subset of
MapboxRouteLineViewOptions
in runtime without the need to recreate the components. The subset that can be changed is defined inMapboxRouteLineViewDynamicOptionsBuilder
. To change the dynamic options in runtime, use the following code:
routeLineView.updateDynamicOptions(style) {
routeLineColorResources(newColors)
// ...
}
routeLineApi.getRouteDrawData {
routeLineView.renderRouteDrawData(style, it)
}
- Split
RouteLineConfig#options
intoRouteLineConfig#apiOptions
andRouteLineConfig#viewOptions
- Added
RouteLineConfig#viewOptionsUpdates
. - Removed
MapboxRouteLineApi#showRouteWithLegIndexHighlighted
,MapboxRouteLineApi#setPrimaryTrafficColor
andMapboxRouteLineApi#setAlternativeTrafficColor
methods. - Changed
MapboxRouteLineApi#setVanishingOffset
method behavior in the following way: if the route had not been set toMapboxRouteLineApi
prior to the point whensetVanishingOffset
was invoked, it will return an error now. Previously it used to return a value, which was, however, useless for rendering without the route. - Fixed an issue when soft gradient was not applied correctly in
MapboxRouteLineApi#setVanishingOffset
result. - Fix adas tiles eviction algorithm
- Fixed a mapmatching issue where the position might have been snapped to the wrong part of a highway after leaving tunnel
- Improve GNSS jump detection for better pitch based map-matching in tunnels
- Eliminate border crossing object when moving to neutral waters and back
v1.0.0-rc.2 - 16 February, 2024
Changelog
- Removed
LongRoutesOptimisationOptions
. Navigation Core Framework is now optimized to handle long routes by default. - Added billing explanation logs. Now Navigation SDK explains in the logs why certain Active Guidance or Free Drive Trip session started/stopped/paused/resumed. Billing explanations have
[BillingExplanation]
prefix in the logcat. - Removed
NavigaitonRoute#deserializeFrom
andNavigationRoute#serialize
from public API because it's too easy to misuse them and create a leak of resources. RouterFailure.code
has been replaced withRouterFailure.type
. SeeRouterFailureType
to find all possible error types.- Improve map-matching on elevated roads.
- Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started.
You can enable route line events collection for Copilot using
CopilotOptions#shouldRecordRouteLineEvents
option. It is disabled by default. - Improved EHorizon path evaluation.
- Fixed leak of CarAppLifecycleOwner on every copilot start.
- Added Polish translation for UI elements.
v1.0.0-rc.3 - 01 March, 2024
Changelog
- Resolved an issue where a crash could occur if telemetry sending settings were changed after creating
MapboxNavigation
. - Fixed an issue with vanishing route line not working for single-leg routes.
- Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online.
- Improved highway exits detection.
- Improved passed alternatives handling.
- Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error.
- Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations.
- Fixed leak of CarAppLifecycleOwner on every copilot start.
- Fixed ADASIS generator errors related to the split edges.
- Fixed ADAS cache tiles eviction mechanism.
- Started handling "unlilimited" speed limits in ADASIS.
- Started sending special type POSITION messages in OFF-ROAD mode.
- Fixed ANR
at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25)
.
Mapbox dependencies:
- Mapbox Maps SDK
v11.2.0
(release notes) - Mapbox Navigation Native
v303.0.0
- Mapbox Core Common
v24.2.0
- Mapbox Java
v6.15.0
(release notes)
v1.0.0-rc.4 - 18 March, 2024
Changelog
- Added experimental property
NavigationRoute#responseOriginAPI
which describes API that Navigation CF used to generate data forNavigationRoute
.NavigationRoute#responseOriginAPI
could be used to form expectations from navigation experience given the fact that routes withResponseOriginAPI.MAP_MATCHING_API
has limited support currently. - Public data classes have been replaces with normal classes with generated
equals
,hashCode
,toString
.copy
function and destructuring declarations are not available for affected classes. Affected classes are:ExclusionViolation
,TripNotificationData
,MatchableOpenLr
,MatchableGeometry
,MatchablePoint
,ReplayEvents
,ReplayEventGetStatus
,ReplayEventUpdateLocation
,ReplayEventLocation
,RerouteState.Failed
,RerouteState.RouteFetched
,RouteOptionsResult.Succes
,RouteOptionsResult.Error
,NavigationSessionState.FreeDrive
,NavigationSessionState.ActiveGuidance
,SearchResultsEvent
,SearchResultUsedEvent
,HistoryPoint
,HistoryRoutablePoint
,HistorySearchResult
,SearchResultUsed
,SearchResults
,FocalPoint
,ViewportData
,NavigationRouteLine
,RouteLineDistancesIndex
,RouteLineScaleValue
. - Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via
MapboxNavigation#requestMapMatching
. - Added
RerouteOptions#enableLegacyBehaviorForMapMatchedRoute
which lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API. - Changed reroute state transition in case of deviation from a primary route which is received via
MapboxNavigation#requestMapMatching
when no alternative routes available to switch to. Reroute state used to beIdle
, but now performs the following transition:Idle
->FetchingRoute
->Failed
->Idle
.
Mapbox dependencies:
- Mapbox Maps SDK
v11.2.1
(release notes) - Mapbox Navigation Native
v303.0.0-36f123f
- Mapbox Core Common
v24.2.0
- Mapbox Java
v6.15.0
(release notes)
v3.0.0-rc.5 - 30 March, 2024
Changelog
- The new
ui-components
module is now available. This module offers UI components that were previously accessible in Nav SDK v2. - Made
RouteShieldError#url
andRouteShieldOrigin#originalUrl
nullable. They can be null in case the request had been cancelled before the URL was formed. - Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.
- Added a Copilot option that allows to provide a different user id for history recording context.
Mapbox dependencies:
- Mapbox Maps SDK
v11.2.2
(release notes) - Mapbox Navigation Native
v304.0.0
- Mapbox Core Common
v24.2.3
- Mapbox Java
v6.15.0
(release notes)
v3.0.0 - 12 April, 2024
Changelog
-
Modules structure (mostly UI components modules) has been significantly changed. See migration guide for more information https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#artifacts
-
Deprecated classes, functions and fields have been removed. See Nav SDK v2 documentation for more information about missing parts and migration guides.
-
com.mapbox.navigation.core.reroute.NavigationRerouteController
has been merged withcom.mapbox.navigation.core.reroute.RerouteController
-
Introduced support of Mapbox Map Matching API, see
MapboxNavigation#requestMapMatching
. -
Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. See documentation to get more information.
-
Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API.
-
Added
NavigationViewApi#recenterCamera()
that allows to programatically recenter the camera position as if the recenter button was clicked. -
Introduced support for highlighting 3D buildings.
-
Navigation Core Framework doesn't let creating
NavigationRoute
from json anymore. UseMapboxNavigation#requestRoutes
andMapboxNavigation#requestMapMatching
to requestNavigationRoute
s. -
Changed type of
RouterOrigin
. Now it's an annotation which defines possible string values for router origin.RouterOrigin.Offboard
is renamed toRouterOrigin.ONLINE
,RouterOrigin.Onboard
is renamed toRouterOrigin.OFFLINE
,RouterOrigin.Custom
is removed. -
Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register
RoutesObserver
to keep track of current routes. UseMapboxNavigation#setContinuousAlternativesEnabled
to enable/disable automatic update. -
NavigationRouteAlternativesObserver
,RouteAlternativesObserver
,NavigationRouteAlternativesRequestCallback
,MapboxNavigation#registerRouteAlternativesObserver
,MapboxNavigation#requestAlternativeRoutes
were removed in favour of automatic alternatives update. -
Added support for
RouteOptions#suppressVoiceInstructionLocalNames
to onboard router. -
Changed the semantics of
Location#timestamp
that you receive inonLocationMatcherResult
, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time. -
Route Line component has been refactored and significantly changed. See migration guide for more information: https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#mapboxroutelineapi
-
Removed
LongRoutesOptimisationOptions
. Navigation Core Framework is now optimized to handle long routes by default. -
RouterFailure.code
has been replaced withRouterFailure.type
. SeeRouterFailureType
to find all possible error types. -
Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started.
You can enable route line events collection for Copilot usingCopilotOptions#shouldRecordRouteLineEvents
option. It is disabled by default. -
Improved EHorizon path evaluation.
-
Added experimental property
NavigationRoute#responseOriginAPI
which describes API that Navigation CF used to generate data forNavigationRoute
.NavigationRoute#responseOriginAPI
could be used to form expectations from navigation experience given the fact that routes withResponseOriginAPI.MAP_MATCHING_API
has limited support currently. -
Public data classes have been replaces with normal classes with generated
equals
,hashCode
,toString
.copy
function and destructuring declarations are not available for affected classes. -
Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via
MapboxNavigation#requestMapMatching
. -
The Android Auto components are live in GA, follow the https://docs.mapbox.com/android/navigation/guides/androidauto/ to add it to your project.
-
Made
MapboxNavigation
constructor andonDestroy
internal. To create an instance ofMapboxNavigation
useMapboxNavigationProvider#create
; to destroy it useMapboxNavigationProvider#destroy
. 3274 -
Fixed a bug with multiple instances of cache which resulted in excessive memory consumption.
-
Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter.
-
Improved handling of no storage available during navigation tiles downloading.
-
Improved handling of invalid config in
DeviceProfile#customConfig
. -
Fixed a native crash in E-Horizon implementation caused by internal race condition.
-
Made
MapboxReplayer
constructor public. -
Removed
OnlineRouteAlternativesSwitch
. UseNavigationRouteAlternativesObserver
to receive an online alternative for the current offline route. UnlikeOnlineRouteAlternativesSwitch
,NavigationRouteAlternativesObserver
doesn't switch to an online alternative automatically. -
Changed structure of
NavigationRoute
. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API.NavigationRoute#directionsResponse
has been removed. UseNavigationRoute#waypoints
andNavigationRoute#responseUUID
to access data which used to be available viaNavigationRoute#directionsResponse
.NavigationRoute#routeOptions
has been removed. Try to utilise data available inNavigationRoute
, for example instead of using coordinates from route options, useNavigationRoute#waypoints
. Temporary propertyNavigationRoute#evMaxCharge
has been added to access maximum possible charge for the vehicle the route was requested for instead ofnavigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge")
. -
Improve GNSS jump detection for better pitch based map-matching in tunnels
-
Eliminate border crossing object when moving to neutral waters and back
-
Fixed leak of CarAppLifecycleOwner on every copilot start.
-
Resolved an issue where a crash could occur if telemetry sending settings were changed after creating
MapboxNavigation
. -
Fixed an issue with vanishing route line not working for single-leg routes.
-
Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online.
-
Improved highway exits detection.
-
Improved passed alternatives handling.
-
Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error.
-
Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations.
-
Fixed leak of CarAppLifecycleOwner on every copilot start.
-
Started sending special type POSITION messages in OFF-ROAD mode.
-
Fixed ANR
at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25)
. #dd -
Added
RerouteOptions#enableLegacyBehaviorForMapMatchedRoute
which lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API. -
Changed reroute state transition in case of deviation from a primary route which is received via
MapboxNavigation#requestMapMatching
when no alternative routes available to switch to. Reroute state used to beIdle
, but now performs the following transition:Idle
->FetchingRoute
->Failed
->Idle
. -
Made
RouteShieldError#url
andRouteShieldOrigin#originalUrl
nullable. They can be null in case the request had been cancelled before the URL was formed. -
Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.
-
Added a Copilot option that allows to provide a different user id for history recording context.
-
Fixed an issue where incidents and closures far ahead along the route might have disappeared after route refresh.
-
Made
RouteShieldError#url
andRouteShieldOrigin#originalUrl
nullable. They can be null in case the request had been cancelled before the URL was formed. -
Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.
-
Improved tunnel exit detection.
-
Internal dependencies updated, which includes removal of unwanted URLs from the binary.
-
Improved incidents behavior: far away incidents are kept after partial route refresh.
-
Improved incidents behavior: expired incidents are removed on route refresh.
-
Improved incidents behavior: incidents with incorrect endTime are not removed.
-
Fixed EV route parsing issue.
-
Fixed a crash that could happen on incorrect waypoints in the route response.
-
Fixed continuous alternatives bugs leading to excessive
getRoute
calls. Mapbox dependencies: -
Mapbox Maps SDK
v11.3.0
(release notes) -
Mapbox Navigation Native
v305.0.0
-
Mapbox Core Common
v24.3.1
-
Mapbox Java
v6.15.0
(release notes)
v3.0.1 - 22 April, 2024
Changelog
- Added a new option
PredictiveCacheMapsOptions.extraOptions
that allows to specify extra tileset descriptor options. - Fixed an issue where there was no fallback to onboard router in some cases. Now we allow onboard routing in all cases except when the request was cancelled.
- Fixed an issue related to cached ADAS data not being released.
- Removed route alerts for border crossings in neutral waters.
- Fixed a crash caused by filtered alternatives in cases where the primary route status is different from the incoming route status.
- Fixed context leak on Activity recreation Mapbox dependencies:
- Mapbox Maps SDK
v11.3.0
(release notes) - Mapbox Navigation Native
v305.0.1
- Mapbox Core Common
v24.3.1
- Mapbox Java
v6.15.0
(release notes)