Skip to content

Commit

Permalink
v3.4.1
Browse files Browse the repository at this point in the history
22f2a746558b8afb839a87f619373dee59764e13
  • Loading branch information
RingerJK committed Oct 23, 2024
1 parent 3730414 commit a15fbc8
Show file tree
Hide file tree
Showing 52 changed files with 1,805 additions and 197 deletions.
76 changes: 76 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,81 @@
# Changelog for the Mapbox Navigation SDK Core Framework for Android

## Navigation SDK Core Framework 3.4.1 - 19 October, 2024
#### Features


#### Bug fixes and improvements
- 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)
- Improved map-matching experience in tunnels. [#7042](https://github.com/mapbox/mapbox-navigation-android/pull/7042)
- Increased route stickiness in dead reckoning mode. [#7042](https://github.com/mapbox/mapbox-navigation-android/pull/7042)
- Improved odometry and road graph fusing in Manhattan urban canyons. [#7042](https://github.com/mapbox/mapbox-navigation-android/pull/7042)
- Nav SDK now removes passed alternative routes as soon as user passed fork point. [#6813](https://github.com/mapbox/mapbox-navigation-android/pull/6813)

### Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK `v11.7.1` ([release notes](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.7.1))
- Mapbox Navigation Native `v320.2.0`
- Mapbox Core Common `v24.7.1`
- Mapbox Java `v7.2.0` ([release notes](https://github.com/mapbox/mapbox-java/releases/tag/v7.2.0))


## Navigation SDK Core Framework 3.4.0 - 01 October, 2024
#### Features
- Split MotionData into more accurate parts. Introduced ImuTemperatureData, OrientationData, RawAccelerometer, RawGravity, RawGyroscope and SpeedData. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Added unique route ID's after each subsequent restart. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Added filtering online routes that are too far from current location. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Added rerouting when server unrecognizes current route id to refresh or update alternatives. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Improved route completion logic. Completed state is triggered only if the puck is leaving the waypoint or after timeout reaching the waypoint threshold. [#6760](https://github.com/mapbox/mapbox-navigation-android/pull/6760)
- 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)
- 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)
- 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)
- 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)
- 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)
- The `PredictiveCacheController(PredictiveCacheOptions)` constructor is now deprecated. Use `PredictiveCacheController(MapboxNavigation, PredictiveCacheOptions)` instead. [#6376](https://github.com/mapbox/mapbox-navigation-android/pull/6376)
- Added `NavigationScaleGestureHandlerOptions#followingRotationAngleThreshold` that define threshold angle for rotation for `FOLLOWING` Navigation Camera state. [#6234](https://github.com/mapbox/mapbox-navigation-android/pull/6234)
- Added the ability to filter road names based on the system language [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163)
- `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)
- Now `EHorizonResultType.Type` has a new element called `EHorizonResultType.NOT_AVAILABLE`. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
- 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)
- Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration [#2743](https://github.com/mapbox/mapbox-navigation-android/pull/2743)
- 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)
- 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)
for example enabling avoid ferries.
- 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)
- Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache. [#5615](https://github.com/mapbox/mapbox-navigation-android/pull/5615)
- [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)
- 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)
- 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)
- Added `RerouteStrategyForMapMatchedRoutes` to `RerouteOptions`. Reroute option `enableLegacyBehaviorForMapMatchedRoute` was removed, use `NavigateToFinalDestination` strategy instead. [#5256](https://github.com/mapbox/mapbox-navigation-android/pull/5256)

#### Bug fixes and improvements
- Fixed unnecessary reroutes when using onboard router. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Fixed remaining alternative routes when passing fork points. [#6873](https://github.com/mapbox/mapbox-navigation-android/pull/6873)
- Improved updating alternative routes [#6760](https://github.com/mapbox/mapbox-navigation-android/pull/6760)
- Fixed `CarSearchLocationProvider` produces _NullPointerException_ when using Mapbox Search SDK. [#6702](https://github.com/mapbox/mapbox-navigation-android/pull/6702)
- 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)
- 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)
- Fixed the issue of unwanted rerouting occurring immediately after setting a new route [#6163](https://github.com/mapbox/mapbox-navigation-android/pull/6163)
- Fixed a crash caused by an overflow in the JNI global reference table. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
- 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)
- Addressed several issues that occurred when switching to an alternative route. [#6290](https://github.com/mapbox/mapbox-navigation-android/pull/6290)
- 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)
- Fixed UI jank caused by on-device TextToSpeech player. [#5638](https://github.com/mapbox/mapbox-navigation-android/pull/5638)
- 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)
- Improve performance when handling large road objects on the eHorizon's MPP. [#6014](https://github.com/mapbox/mapbox-navigation-android/pull/6014)
- Fixed `Routes` that origin is out of primary route cannot be added as alternatives. [#5848](https://github.com/mapbox/mapbox-navigation-android/pull/5848)
- Fixed a crash due to incorrect OpenLR input data [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400)
- Fixed a bug with spinning smoothed coordinate [#5400](https://github.com/mapbox/mapbox-navigation-android/pull/5400)
- 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.

### Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK `v11.7.0` ([release notes](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.7.0))
- Mapbox Navigation Native `v320.0.0`
- Mapbox Core Common `v24.7.0`
- Mapbox Java `v7.2.0` ([release notes](https://github.com/mapbox/mapbox-java/releases/tag/v7.2.0))


## Navigation SDK Core Framework 3.4.0-rc.1 - 17 September, 2024
#### Features

Expand Down
1 change: 0 additions & 1 deletion androidauto/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
POM_ARTIFACT_ID=android-auto-components
POM_ARTIFACT_TITLE=Mapbox Navigation SDK
POM_DESCRIPTION=Artifact that provides Android Auto compoents
2 changes: 0 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ systemProp.kotlin.daemon.jvm.options=-Xss8m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

RELEASE_TAG_PREFIX=v
65 changes: 65 additions & 0 deletions gradle/artifact-properties-patcher.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import groovy.json.JsonSlurper
import groovy.json.JsonOutput

ext.patchPomDependencies = { Node mainNode ->
def dependenciesNode = mainNode['dependencies']

def patched = false

dependenciesNode.each { depNode ->
// Find all dependencies whose artifactId equals to the name of one of project's modules.
def navSdkDependencyNodes = depNode['dependency'].findAll { dependency ->
project.ext.navSdkArtifactSettings.containsKey(dependency['artifactId'].text())
}

navSdkDependencyNodes.each { navSdkNode ->
patched = true

def artifactId = navSdkNode['artifactId'].text()
navSdkNode['artifactId'][0].setValue(project.ext.navSdkArtifactSettings[artifactId].getV1())

def versionNode = navSdkNode['version']
if (versionNode) {
versionNode[0].setValue(project.ext.versionName)
} else {
navSdkNode.appendNode('version', project.ext.versionName)
}
}
}

if (patched) {
println("pom file has successfully been patched")
}
}

ext.patchArtifactMetadataFile = {
def taskConfig = project.gradle.startParameter.taskNames
.any { it.contains("Debug") } ? "debug" : "release"

def moduleFile = layout.buildDirectory.file("publications/$taskConfig/module.json").get().asFile
if (!moduleFile.exists()) {
println("$moduleFile file doesn't exist")
return
}

def jsonSlurper = new JsonSlurper()
def moduleData = jsonSlurper.parse(moduleFile)

def patched = false
if (moduleData.variants) {
moduleData.variants.each { variant ->
variant.dependencies.each { dependency ->
if (project.ext.navSdkArtifactSettings.containsKey(dependency.module)) {
patched = true
dependency.module = project.ext.navSdkArtifactSettings[dependency.module].getV1()
dependency.version = [requires: project.ext.versionName]
}
}
}
}

if (patched) {
moduleFile.text = JsonOutput.prettyPrint(JsonOutput.toJson(moduleData))
println("module.json file has successfully been patched")
}
}
31 changes: 30 additions & 1 deletion gradle/artifact-settings.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
ext {
mapboxArtifactGroupId = 'com.mapbox.navigationcore'
mapboxArtifactId = project.property('POM_ARTIFACT_ID')
mapboxArtifactTitle = project.property('POM_ARTIFACT_TITLE')
mapboxArtifactDescription = project.property('POM_DESCRIPTION')
mapboxDeveloperName = 'Mapbox'
Expand All @@ -13,6 +12,36 @@ ext {
snapshot = project.hasProperty("snapshot") ? project.property("snapshot").toBoolean() : false
releaseTagPrefix = project.hasProperty('RELEASE_TAG_PREFIX') ? project.property('RELEASE_TAG_PREFIX') : 'mapbox-navigation-android_dash-core_'
versionName = getVersionName()

/**
* Properties used for artifact publishing.
*
* The map consists of:
* - Key: The name of the Gradle module from which the artifact is built.
* - Value: A tuple with two elements:
* 1. The artifact ID.
* 2. The SDK name used in the SDK registry.
*/
navSdkArtifactSettings = [
'libnavigation-android' : new Tuple2('android', 'navigation-core-android'),
'libnavigation-base' : new Tuple2('base', 'navigation-core-base'),
'libnavigation-core' : new Tuple2('navigation', 'navigation-core-navigation'),
'libnavigation-copilot' : new Tuple2('copilot', 'navigation-core-copilot'),
'libnavigation-metrics' : new Tuple2('metrics', 'navigation-core-metrics'),
'libnavigation-tripdata' : new Tuple2('tripdata', 'navigation-core-tripdata'),
'libnavigation-util' : new Tuple2('utils', 'navigation-core-utils'),
'libnavigation-voice' : new Tuple2('voice', 'navigation-core-voice'),
'libnavigator' : new Tuple2('navigator', 'navigation-core-navigator'),
'libnavui-base' : new Tuple2('ui-base', 'navigation-core-ui-base'),
'libnavui-maps' : new Tuple2('ui-maps', 'navigation-core-ui-maps'),
'libnavui-util' : new Tuple2('ui-utils', 'navigation-core-ui-utils'),
'libtrip-notification' : new Tuple2('notification', 'navigation-core-notification'),
'ui-components' : new Tuple2('ui-components', 'navigation-core-ui-components'),
'androidauto' : new Tuple2('android-auto-components', 'navigation-core-androidauto'),
'libtesting-router' : new Tuple2('test-router', 'navigation-core-testing-router'),
'libnavigation-custom-route' : new Tuple2('customroute', 'navigation-core-custom-route'),
'libnavigation-datainputs' : new Tuple2('datainputs', 'navigation-core-datainputs')
]
}

def getVersionName() {
Expand Down
8 changes: 4 additions & 4 deletions gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ ext {
// version which we should use in this build
def mapboxNavigatorVersion = System.getenv("FORCE_MAPBOX_NAVIGATION_NATIVE_VERSION")
if (mapboxNavigatorVersion == null || mapboxNavigatorVersion == '') {
mapboxNavigatorVersion = '319.0.0'
mapboxNavigatorVersion = '320.2.0'
}
println("Navigation Native version: " + mapboxNavigatorVersion)

version = [
mapboxMapSdk : '11.7.0-rc.1',
mapboxMapSdk : '11.7.1',
mapboxSdkServices : '7.2.0',
mapboxNavigator : "${mapboxNavigatorVersion}",
mapboxCommonNative : '24.7.0-rc.2',
mapboxSearch : '2.5.0-rc.2',
mapboxCommonNative : '24.7.1',
mapboxSearch : '2.5.1',
mapboxBaseAndroid : '0.11.0',
androidXLifecycle : '2.4.0',
androidXCoreVersion : '1.6.0',
Expand Down
Loading

0 comments on commit a15fbc8

Please sign in to comment.