Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ky/upstream v3.4.1 #7884

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
10 changes: 5 additions & 5 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 Expand Up @@ -201,7 +201,7 @@ ext {
jacoco : '0.8.12',
googleServices : '4.3.3',
mapboxSdkVersions : '1.1.3',
dokka : '1.6.21',
dokka : '1.9.20',
mapboxSdkRegistry : '0.7.0',
mapboxAccessToken : '0.2.1',
mapboxNativeDownload : '0.2.2',
Expand Down
Loading
Loading