Skip to content

Releases: mapbox/mapbox-navigation-android

Mapbox Navigation SDK 2.15.0

04 Aug 13:39
9b0fe3b
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.15.0 - 04 August, 2023

Changelog

Changes between v2.14.0 and v2.15.0

Features

  • Added IncidentInfo#trafficCodes property. #7407
  • Introduced RoutesInvalidatedObserver to be notified about routes invalidation. When this observer is fired, the routes passed as an argument will not be refreshed anymore, because they expired. It is recommended to rebuild a route in this case. Example usage: #7318
mapboxNavigation.registerRoutesInvalidatedObserver { routes ->
    val invalidatedIds = routes.map { it.id }
    val currentRoutes = mapboxNavigation.getNavigationRoutes()
    val primaryRoute = currentRoutes.firstOrNull()
    if (routes.any { it.id == primaryRoute?.id }) {
        // primary route is outdated - trigger reroute
        mapboxNavigation.getRerouteController()?.reroute(object : NavigationRerouteController.RoutesCallback {
            override fun onNewRoutes(
                routes: List<NavigationRoute>,
                routerOrigin: RouterOrigin
            ) {
                mapboxNavigation.setNavigationRoutes(routes)
            }
        })
    } else {
        // remove outdated alternatives
        mapboxNavigation.setNavigationRoutes(currentRoutes.filterNot { it.id in invalidatedIds })
    }
}
  • Introduced MERGING_AREA RoadObject type. You can receive Merging Areas via RouteProgress#upcomingRoadObjects and via EHorizonObserver. Note: to enable merging area collection when using EHorizon, set AlertServiceOptions#collectMergingAreas to true. #7358
  • Added new option to control gender of voice MapboxSpeechApiOptions.gender. #7337
  • Added new options to RouteLineColorResources to style congestion, restrictions, and closures colors on inactive legs when MapboxRouteLineOptions#styleInactiveRouteLegsIndependently is enabled. The values default to transparent. #7322

Bug fixes and improvements

  • Added RouteLineColorResources#inactiveRouteLegCasingColor to specify the color used for inactive legs casing. #7392
  • Fixed an issue where in rare cases BannerInstructionsObserver might not have been invoked for an instruction when the route was being refreshed. #7414
  • Reverted sticky charging stations feature for rerouting. #7403
  • Map matching now uses emergency roads. #7404
  • Improved algorithm that chooses fork during dead-reckoning. #7404
  • Dead-reckoning is allowed even in short tunnels and bridges. #7404
  • Improved arrival detection in case of off-road. #7429
  • Fixed an issue where RouteProgress might have contained the same incident twice. #7429
  • Fixed an issue where the app might have crashed due to JNI reference table overflow. #7429
  • Fixed an issue with broken map-matching after significant teleports. #7429
  • Fixed an issue where map-matching might have jumped on parallel roads. #7429
  • Started using fallback to onboard routing in case of 5xx Directions Response codes. #7429
  • Added IncidentInfo#multilingualAffectedRoadNames. #7428
  • Fixed an issue where soft gradient was not applied for active legs. #7410
  • Now updated via MapboxNavigation#onEvDataUpdated parameters are added to continuous alternatives requests. #7380
  • Fixed snapping to a tunnel after driving out of underground parking. #7372
  • Fixed ADASIS assertion failures on KML files. #7372
  • Fixed MapMatching isuue where it might have picked the wrong tunnel. #7372
  • Fixes an issue where trail layer that indicates the traveled portion of the route was visible below inactive legs. #7363
  • Nav SDK now preserves charging stations after reroute. #7369
  • Fixed an issue where RoutingTilesOptions#tilesBaseUri was used as a base url for route refresh requests instead of RouteOptions#baseUrl. #7294
  • Improved Copilot to send a proper type with events of type DriveEndsEvent. #7236
  • Added a Copilot option that allows to disable recording Free Drive histories. #7276
  • Added experimental metadata property to LegWaypoint class. This property exposes the corresponding DirectionsWaypoint#metadata. #7259
  • Added Copilot option that allows to split history files by duration. #7232
  • Added Copilot options that allow to limit the number and total size of history files to be sent per session. #7232
  • Route request timeout errors are now considered failures as opposed to cancellations (NavigationRouterCallback#onFailure will be invoked instead of NavigationRouterCallback#onCanceled). #7319
  • Fixed an issue where location might have been snapped to an incorrect road when previously location updates had been inactive. #7319
  • Fixed an issue where in case of poor location signal it might have been snapped to a road, which is above/below the correct one. #7319
  • Added experimental MapboxNavigation#etcGateApi so that the app can provide data about passed ETC gates. #7295
  • Fixed an issue where road closures where not displayed for inactive legs of the route. #7322
  • Added experimental and temporary (i.e. it will be removed in one of the next releases) OnlineRouteAlternativesSwitch which requests online route when the current route is offline and automatically switches if such a route is found. It's designed for the case when platform's reachability API doesn't work reliably. #7245
  • Fixed an issue where RouteReplaySession might not have started playing a route if it was created approximately at the same time when routes were set to MapboxNavigation. #7293

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.15.0 (release notes)
  • Mapbox Navigation Native v148.0.0
  • Mapbox Core Common v23.7.0
  • Mapbox Java v6.13.0 (release notes)

Mapbox Navigation SDK 2.15.0-rc.1

21 Jul 12:04
a0afdf5
Compare
Choose a tag to compare
Pre-release

Mapbox Navigation SDK 2.15.0-rc.1 - 20 July, 2023

Changelog

Changes between v2.15.0-beta.1 and v2.15.0-rc.1

Features

  • Introduced RoutesInvalidatedObserver to be notified about routes invalidation. When this observer is fired, the routes passed as an argument will not be refreshed anymore, because they expired. It is recommended to rebuild a route in this case. Example usage: #7318
mapboxNavigation.registerRoutesInvalidatedObserver { routes ->
    val invalidatedIds = routes.map { it.id }
    val currentRoutes = mapboxNavigation.getNavigationRoutes()
    val primaryRoute = currentRoutes.firstOrNull()
    if (routes.any { it.id == primaryRoute?.id }) {
        // primary route is outdated - trigger reroute
        mapboxNavigation.getRerouteController()?.reroute(object : NavigationRerouteController.RoutesCallback {
            override fun onNewRoutes(
                routes: List<NavigationRoute>,
                routerOrigin: RouterOrigin
            ) {
                mapboxNavigation.setNavigationRoutes(routes)
            }
        })
    } else {
        // remove outdated alternatives
        mapboxNavigation.setNavigationRoutes(currentRoutes.filterNot { it.id in invalidatedIds })
    }
}
  • Introduced MERGING_AREA RoadObject type. You can receive Merging Areas via RouteProgress#upcomingRoadObjects and via EHorizonObserver. Note: to enable merging area collection when using EHorizon, set AlertServiceOptions#collectMergingAreas to true. #7358
  • Added new option to control gender of voice MapboxSpeechApiOptions.gender. #7337

Bug fixes and improvements

  • Now updated via MapboxNavigation#onEvDataUpdated parameters are added to continuous alternatives requests. #7380
  • Fixed snapping to a tunnel after driving out of underground parking. #7372
  • Fixed ADASIS assertion failures on KML files. #7372
  • Fixed MapMatching isuue where it might have picked the wrong tunnel. #7372
  • Fixes an issue where trail layer that indicates the traveled portion of the route was visible below inactive legs. #7363
  • Nav SDK now preserves charging stations after reroute. #7369

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.15.0-rc.1 (release notes)
  • Mapbox Navigation Native v145.0.0
  • Mapbox Core Common v23.7.0-rc.1
  • Mapbox Java v6.13.0-beta.1 (release notes)

Mapbox Navigation SDK 2.15.0-beta.1

07 Jul 23:26
abde0eb
Compare
Choose a tag to compare
Pre-release

Mapbox Navigation SDK 2.15.0-beta.1 - 07 July, 2023

Changelog

Changes between v2.14.1 and v2.15.0-beta.1

Features

  • Added new options to RouteLineColorResources to style congestion, restrictions, and closures colors on inactive legs when MapboxRouteLineOptions#styleInactiveRouteLegsIndependently is enabled. The values default to transparent. #7322

Bug fixes and improvements

  • Fixed an issue where RoutingTilesOptions#tilesBaseUri was used as a base url for route refresh requests instead of RouteOptions#baseUrl. #7294
  • Improved Copilot to send a proper type with events of type DriveEndsEvent. #7236
  • Added a Copilot option that allows to disable recording Free Drive histories. #7276
  • Added experimental metadata property to LegWaypoint class. This property exposes the corresponding DirectionsWaypoint#metadata. #7259
  • Added Copilot option that allows to split history files by duration. #7232
  • Added Copilot options that allow to limit the number and total size of history files to be sent per session. #7232
  • Route request timeout errors are now considered failures as opposed to cancellations (NavigationRouterCallback#onFailure will be invoked instead of NavigationRouterCallback#onCanceled). #7319
  • Fixed an issue where location might have been snapped to an incorrect road when previously location updates had been inactive. #7319
  • Fixed an issue where in case of poor location signal it might have been snapped to a road, which is above/below the correct one. #7319
  • Added experimental MapboxNavigation#etcGateApi so that the app can provide data about passed ETC gates. #7295
  • Fixed an issue where road closures where not displayed for inactive legs of the route. #7322
  • Added experimental and temporary (i.e. it will be removed in one of the next releases) OnlineRouteAlternativesSwitch which requests online route when the current route is offline and automatically switches if such a route is found. It's designed for the case when platform's reachability API doesn't work reliably. #7245
  • Fixed an issue where RouteReplaySession might not have started playing a route if it was created approximately at the same time when routes were set to MapboxNavigation. #7293

Known issues ⚠️

  • In case an app provides custom Router implementation to Nav SDK, the Nav SDK doesn't trigger NavigationRouteAlternativesObserver with online alternatives when current route is offline.

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.15.0-beta.1 (release notes)
  • Mapbox Navigation Native v143.0.0
  • Mapbox Core Common v23.7.0-beta.1
  • Mapbox Java v6.12.0 (release notes)

Mapbox Navigation SDK 2.14.1

06 Jul 17:52
d454848
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.14.1 - 06 July, 2023

Changelog

Changes between v2.14.0 and v2.14.1

Features

  • Added new options to RouteLineColorResources to style congestion, restrictions, and closures colors on inactive legs when MapboxRouteLineOptions#styleInactiveRouteLegsIndependently is enabled. The values default to transparent. #7322

Bug fixes and improvements

  • Route request timeout errors are now considered failures as opposed to cancellations (NavigationRouterCallback#onFailure will be invoked instead of NavigationRouterCallback#onCanceled). #7324
  • Fixed an issue where road closures where not displayed for inactive legs of the route. #7322

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.14.1 (release notes)
  • Mapbox Navigation Native v137.1.2
  • Mapbox Core Common v23.6.0
  • Mapbox Java v6.12.0 (release notes)

Mapbox Navigation SDK 2.14.0

23 Jun 21:14
6b403be
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.14.0 - 23 June, 2023

Changelog

Changes between v2.13.0 and v2.14.0

Features

  • Added RouteProgress#inParkingAisle field indicating whether the current location belongs to a parking aisle. #7212

Bug fixes and improvements

  • Fixed an issue where RoutingTilesOptions#tilesBaseUri was used as a base url for route refresh requests instead of RouteOptions#baseUrl. #7292
  • Fixed an issue where RouteReplaySession might not have started playing a route if it was created approximately at the same time when routes were set to MapboxNavigation. #7299
  • Added experimental and temporary (i.e. it will be removed in one of the next releases) OnlineRouteAlternativesSwitch which requests online route when the current route is offline and automatically switches if such a route is found. It's designed for the case when platform's reachability API doesn't work reliably. #7263
  • Fixed an issue with Copilot that caused history files without user feedback to remain on disk when using shouldSendHistoryOnlyWithFeedback option. #7233
  • Fixed an issue with too high alternative route requests frequency in case of only one route being present in the route response. #7247
  • Fixed an issue with positioning lag in tunnels. #7247
  • Fixed an issue where no MapboxRouteLineApi callbacks or suspensions for any function would have been invoked if map instance was destroyed while MapboxRouteLineApi#findClosestRoute was in progress. #7213
  • Decreased java memory usage for route requests, alternatives requests, reroutes. #7201
  • Deprecated SpeedLimit class and introduced SpeedLimitInfo instead. The latter uses speed in the corresponding units (as opposed to speedKmph in SpeedLimit) and provides unit and sign info even if the limit itself is unknown. #7214
  • Fixed an issue where first device location was not used when replay was active either in Drop-In or when using ReplayRouteSession directly. #7246
  • Supported displaying distances in yards for imperial UnitType in the UK locale. #6786
  • Changed RouteProgress#hasUnexpectedUpcomingClosures behavior: now it returns false if there are only "expected" closures. A closure is considered expected if it was present in the original route response. An unexpected closure is the one that appears after route refresh. #7237

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.14.1 (release notes)
  • Mapbox Navigation Native v137.1.1
  • Mapbox Core Common v23.6.0
  • Mapbox Java v6.12.0 (release notes)

Mapbox Navigation SDK 2.13.2

15 Jun 20:25
bde9b0e
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.13.2 - 15 June, 2023

Changelog

Changes between v2.13.1 and v2.13.2

Features

Bug fixes and improvements

  • Fixed redundant route alternatives request when a single primary route is set. #7267
  • Fixed lagging of enhanced location updates, i.e. when they're behind the real position, in tunnels. #7267
  • Added experimental and temporary (i.e. it will be removed in one of the next releases) OnlineRouteAlternativesSwitch which requests online route when the current route is offline and automatically switches if such a route is found. It's designed for the case when platform's reachability API doesn't work reliably. #7264
  • Changed RouteProgress#hasUnexpectedUpcomingClosures behavior: now it returns false if there are only "expected" closures. A closure is considered expected if it was present in the original route response. An unexpected closure is the one that appears after route refresh. #7240

Known issues ⚠️

  • Route refresh base URL is not set via RouteOptions#baseUrl. Instead, NavigationOptions#routingTilesOptions#tilesBaseUri is used for refresh.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.13.0 (release notes)
  • Mapbox Navigation Native v132.5.1
  • Mapbox Core Common v23.5.0
  • Mapbox Java v6.11.0 (release notes)

Mapbox Navigation SDK 2.7.5

15 Jun 16:24
b804b0f
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.7.5 - 15 June, 2023

Changelog

Changes between v2.7.4 and v2.7.5

Features

Bug fixes and improvements

  • Fixed an issue where RoutingTilesOptions#tilesBaseUri was used as a base url for route refresh requests instead of RouteOptions#baseUrl.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

Mapbox Navigation SDK 2.14.0-rc.1

09 Jun 20:43
fd1405a
Compare
Choose a tag to compare
Pre-release

Mapbox Navigation SDK 2.14.0-rc.1 - 09 June, 2023

Changelog

Changes between v2.14.0-beta.1 and v2.14.0-rc.1

Features

  • Added RouteProgress#inParkingAisle field indicating whether the current location belongs to a parking aisle. #7212

Bug fixes and improvements

  • Fixed an issue with Copilot that caused history files without user feedback to remain on disk when using shouldSendHistoryOnlyWithFeedback option. #7233
  • Fixed an issue with too high alternative route requests frequency in case of only one route being present in the route response. #7247
  • Fixed an issue with positioning lag in tunnels. #7247
  • Fixed an issue where no MapboxRouteLineApi callbacks or suspensions for any function would have been invoked if map instance was destroyed while MapboxRouteLineApi#findClosestRoute was in progress. #7213
  • Decreased java memory usage for route requests, alternatives requests, reroutes. #7201
  • Deprecated SpeedLimit class and introduced SpeedLimitInfo instead. The latter uses speed in the corresponding units (as opposed to speedKmph in SpeedLimit) and provides unit and sign info even if the limit itself is unknown. #7214
  • Fixed an issue where first device location was not used when replay was active either in Drop-In or when using ReplayRouteSession directly. #7246
  • Supported displaying distances in yards for imperial UnitType in the UK locale. #6786
  • Changed RouteProgress#hasUnexpectedUpcomingClosures behavior: now it returns false if there are only "expected" closures. A closure is considered expected if it was present in the original route response. An unexpected closure is the one that appears after route refresh. #7237

Known issues ⚠️

  • Route refresh base URL is not set via RouteOptions#baseUrl. Instead, NavigationOptions#routingTilesOptions#tilesBaseUri is used for refresh.

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.14.0-rc.1 (release notes)
  • Mapbox Navigation Native v136.0.1
  • Mapbox Core Common v23.6.0-rc.1
  • Mapbox Java v6.12.0 (release notes)

Mapbox Navigation SDK 2.13.1

31 May 13:00
217cfba
Compare
Choose a tag to compare

Mapbox Navigation SDK 2.13.1 - 31 May, 2023

Changelog

Changes between v2.13.0 and v2.13.1

Features

Bug fixes and improvements

  • Fixed offline-online routes switch via route alternative observer for the case when new online route is the same as current offline. #7215
  • Improved road snapping for the case when GPS signal is unstable. When GPS signal becomes unstable, LocationMatcherResult#isOffRoad stays false and LocationMatcherResult#enhancedLocation is snapped to a road, the effect takes place until stabilisation of GPS signal. #7215
  • Fixed NavigationRoutes#waypoints being null for EV offline fallback. #7165

Known issues ⚠️

  • NavigationRouteAlternativesObserver#onRouteAlternatives could be called with an online alternative that is the same as current offline route except for its origin and annotations.
    MapboxNavigation#getAlternativeMetadataFor will return null for that alternative.
    Calling MapboxNavigation#setNavigationRoutes(listOf(currentOfflinePrimaryRoute, newOnlineAlternative)) for that case won't make any effect as the alternative will be ignored.
    Make sure that you implemented routes alternatives observers with respect to offline-online scenarios as documentation suggests.

Known issues ⚠️

  • Route refresh base URL is not set via RouteOptions#baseUrl. Instead, NavigationOptions#routingTilesOptions#tilesBaseUri is used for refresh.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.13.0 (release notes)
  • Mapbox Navigation Native v132.3.0
  • Mapbox Core Common v23.5.0
  • Mapbox Java v6.11.0 (release notes)

Mapbox Navigation SDK 2.14.0-beta.1

26 May 21:31
468ddb1
Compare
Choose a tag to compare
Pre-release

Mapbox Navigation SDK 2.14.0-beta.1 - 26 May, 2023

Changelog

Changes between v2.13.0 and v2.14.0-beta.1

Features

  • Added support for uncompressed memory mapped tiles that could be enabled via config options(turned off by default). #7197

Bug fixes and improvements

  • Improved road snapping for the case when GPS signal is unstable. When GPS signal becomes unstable, LocationMatcherResult#isOffRoad stays false and LocationMatcherResult#enhancedLocation is snapped to a road, the effect takes place until stabilisation of GPS signal. #7197
  • Added MapboxNavigation#currentLegIndex. Use this method to correctly pass leg index to MapboxRouteLineAPI#setNavigationRoutes method, this is especially important if you use independent inactive leg styling: #7102
val routesObserver = RoutesObserver {
    routeLineAPI.setNavigationRoutes(result.navigationRoutes, mapboxNavigation.currentLegIndex()).apply {
        routeLineView.renderRouteDrawData(mapboxMap.getStyle()!!, this)
    }    
}
  • Fixed offline-online routes switch via route alternative observer for the case when new online route is the same as current offline. #7195
  • Fixed NavigationRoutes#waypoints being null for EV offline fallback. #7165

Known issues ⚠️

  • NavigationRouteAlternativesObserver#onRouteAlternatives could be called with an online alternative that is the same as current offline route except for its origin and annotations.
    MapboxNavigation#getAlternativeMetadataFor will return null for that alternative.
    Calling MapboxNavigation#setNavigationRoutes(listOf(currentOfflinePrimaryRoute, newOnlineAlternative)) for that case won't make any effect as the alternative will be ignored.
    Make sure that you implemented routes alternatives observers with respect to offline-online scenarios as documentation suggests.
  • Route refresh base URL is not set via RouteOptions#baseUrl. Instead, NavigationOptions#routingTilesOptions#tilesBaseUri is used for refresh.

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v10.14.0-beta.1 (release notes)
  • Mapbox Navigation Native v135.0.0
  • Mapbox Core Common v23.6.0-beta.1
  • Mapbox Java v6.11.0 (release notes)