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

Dd adasis preview #7539

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft
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
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ allprojects {
// we allow access to snapshots repo if ALLOW_SNAPSHOT_REPOSITORY is set, what means we are running on CI
// with Navigation Native forced to be some snapshot version
// if you need to use snapshots while development, just set `addSnapshotsRepo` to true manually
def addSnapshotsRepo = project.hasProperty('ALLOW_SNAPSHOT_REPOSITORY') ? project.property('ALLOW_SNAPSHOT_REPOSITORY') : (System.getenv("ALLOW_SNAPSHOT_REPOSITORY")?.toBoolean() ?: false)
// TODO revert conditional snapshot repository set up.
def addSnapshotsRepo = true//project.hasProperty('ALLOW_SNAPSHOT_REPOSITORY') ? project.property('ALLOW_SNAPSHOT_REPOSITORY') : (System.getenv("ALLOW_SNAPSHOT_REPOSITORY")?.toBoolean() ?: false)
if (addSnapshotsRepo) {
println("Snapshot repository reference added.")
maven {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.mapbox.maps.plugin.LocationPuck2D
import com.mapbox.maps.plugin.animation.camera
import com.mapbox.maps.plugin.gestures.gestures
import com.mapbox.maps.plugin.locationcomponent.location
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
import com.mapbox.navigation.base.TimeFormat
import com.mapbox.navigation.base.extensions.applyDefaultNavigationOptions
import com.mapbox.navigation.base.extensions.applyLanguageAndVoiceUnitOptions
Expand Down Expand Up @@ -70,6 +71,20 @@ import com.mapbox.navigation.ui.voice.model.SpeechError
import com.mapbox.navigation.ui.voice.model.SpeechValue
import com.mapbox.navigation.ui.voice.model.SpeechVolume
import com.mapbox.navigation.utils.internal.logD
import com.mapbox.navigator.ADASISv2Message
import com.mapbox.navigator.ADASISv2MessageCallback
import com.mapbox.navigator.AdasisConfig
import com.mapbox.navigator.AdasisConfigCycleTimes
import com.mapbox.navigator.AdasisConfigDataSending
import com.mapbox.navigator.AdasisConfigMessageOptions
import com.mapbox.navigator.AdasisConfigPathLevelOptions
import com.mapbox.navigator.AdasisConfigPathsConfigs
import com.mapbox.navigator.AdasisConfigProfilelongTypeOptions
import com.mapbox.navigator.AdasisConfigProfileshortTypeOptions
import com.mapbox.navigator.Profilelong
import com.mapbox.navigator.Profileshort
import com.mapbox.navigator.Segment
import com.mapbox.navigator.Stub
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
Expand Down Expand Up @@ -268,6 +283,7 @@ class MapboxNavigationActivity : AppCompatActivity() {
logD("sessionId=${mapboxNavigation.getNavigationSessionState().sessionId}", LOG_CATEGORY)
}

@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
@SuppressLint("MissingPermission")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -429,6 +445,37 @@ class MapboxNavigationActivity : AppCompatActivity() {
// start the trip session to being receiving location updates in free drive
// and later when a route is set, also receiving route progress updates
mapboxNavigation.startTripSession()
mapboxNavigation.setAdasisMessageCallback(
object : ADASISv2MessageCallback {
override fun run(message: ADASISv2Message) {
println("[Adasis] message: ${message.toJson()}")
}
},
AdasisConfig(
AdasisConfigCycleTimes(),
AdasisConfigDataSending(),
AdasisConfigPathsConfigs(
AdasisConfigPathLevelOptions(
Stub(AdasisConfigMessageOptions()),
Segment(AdasisConfigMessageOptions()),
Profileshort(AdasisConfigMessageOptions(), AdasisConfigProfileshortTypeOptions()),
Profilelong(AdasisConfigMessageOptions(), AdasisConfigProfilelongTypeOptions())
),
AdasisConfigPathLevelOptions(
Stub(AdasisConfigMessageOptions()),
Segment(AdasisConfigMessageOptions()),
Profileshort(AdasisConfigMessageOptions(), AdasisConfigProfileshortTypeOptions()),
Profilelong(AdasisConfigMessageOptions(), AdasisConfigProfilelongTypeOptions())
),
AdasisConfigPathLevelOptions(
Stub(AdasisConfigMessageOptions()),
Segment(AdasisConfigMessageOptions()),
Profileshort(AdasisConfigMessageOptions(), AdasisConfigProfileshortTypeOptions()),
Profilelong(AdasisConfigMessageOptions(), AdasisConfigProfilelongTypeOptions())
),
)
)
)
}

override fun onStart() {
Expand Down
15 changes: 8 additions & 7 deletions gradle/artifact-settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ ext {
}

def getVersionName() {
if (project.hasProperty('VERSION_NAME')) {
return project.property('VERSION_NAME')
}
def prefix = project.ext.releaseTagPrefix
def cmd = ["git", "describe", "--tag", "--match", "$prefix*", "--abbrev=0"]
def version = cmd.execute().text
return project.ext.snapshot ? getSnapshotVersion(version) : getReleaseVersion(version)
// if (project.hasProperty('VERSION_NAME')) {
// return project.property('VERSION_NAME')
// }
// def prefix = project.ext.releaseTagPrefix
// def cmd = ["git", "describe", "--tag", "--match", "$prefix*", "--abbrev=0"]
// def version = cmd.execute().text
// return project.ext.snapshot ? getSnapshotVersion(version) : getReleaseVersion(version)
return "2.17.0-adas-preview-SNAPSHOT"
}

def getReleaseVersion(String version) {
Expand Down
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ext {
// version which we should use in this build
def mapboxNavigatorVersion = System.getenv("FORCE_MAPBOX_NAVIGATION_NATIVE_VERSION")
if (mapboxNavigatorVersion == null || mapboxNavigatorVersion == '') {
mapboxNavigatorVersion = '158.0.0'
mapboxNavigatorVersion = 'nio-adas-main-6-SNAPSHOT'
}
println("Navigation Native version: " + mapboxNavigatorVersion)

Expand Down
2 changes: 1 addition & 1 deletion libnavigation-base/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ dependencies {
api dependenciesList.mapboxSdkDirectionsModels
api dependenciesList.mapboxSdkServicesCore
// Navigator
implementation dependenciesList.mapboxNavigator
api dependenciesList.mapboxNavigator

implementation dependenciesList.androidXAnnotation
implementation dependenciesList.androidXCoreKtx
Expand Down
46 changes: 45 additions & 1 deletion libnavigation-core/api/current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,10 @@ package com.mapbox.navigation.core {
method public void requestRoadGraphDataUpdate(com.mapbox.navigation.core.RoadGraphDataUpdateCallback callback);
method @Deprecated public long requestRoutes(com.mapbox.api.directions.v5.models.RouteOptions routeOptions, com.mapbox.navigation.base.route.RouterCallback routesRequestCallback);
method public long requestRoutes(com.mapbox.api.directions.v5.models.RouteOptions routeOptions, com.mapbox.navigation.base.route.NavigationRouterCallback callback);
method @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public void resetAdasisMessageCallback();
method @Deprecated public void resetTripSession();
method public void resetTripSession(com.mapbox.navigation.core.TripSessionResetCallback callback);
method @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public void setAdasisMessageCallback(com.mapbox.navigator.ADASISv2MessageCallback callback, com.mapbox.navigator.AdasisConfig adasisConfig);
method public void setArrivalController(com.mapbox.navigation.core.arrival.ArrivalController? arrivalController = com.mapbox.navigation.core.arrival.AutoArrivalController());
method public void setArrivalController();
method public void setNavigationRoutes(java.util.List<com.mapbox.navigation.base.route.NavigationRoute> routes, int initialLegIndex = 0, com.mapbox.navigation.core.RoutesSetCallback? callback = null);
Expand Down Expand Up @@ -120,6 +122,7 @@ package com.mapbox.navigation.core {
method @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public void unregisterRoutesPreviewObserver(com.mapbox.navigation.core.preview.RoutesPreviewObserver observer);
method public void unregisterTripSessionStateObserver(com.mapbox.navigation.core.trip.session.TripSessionStateObserver tripSessionStateObserver);
method public void unregisterVoiceInstructionsObserver(com.mapbox.navigation.core.trip.session.VoiceInstructionsObserver voiceInstructionsObserver);
method @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public void updateExternalSensorData(com.mapbox.navigation.core.sensor.SensorData data, com.mapbox.navigation.core.sensor.UpdateExternalSensorDataCallback callback);
property public final com.mapbox.navigation.core.EtcGateApi etcGateAPI;
property public final com.mapbox.navigator.Experimental experimental;
property public final com.mapbox.navigation.core.trip.session.eh.GraphAccessor graphAccessor;
Expand Down Expand Up @@ -950,7 +953,8 @@ package com.mapbox.navigation.core.routeoptions {

package com.mapbox.navigation.core.routerefresh {

@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class RouteRefreshController {
@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class RouteRefreshController implements com.mapbox.navigation.core.directions.session.RoutesObserver {
method public void onRoutesChanged(com.mapbox.navigation.core.directions.session.RoutesUpdatedResult result);
method public void pauseRouteRefreshes();
method public void registerRouteRefreshStateObserver(com.mapbox.navigation.core.routerefresh.RouteRefreshStatesObserver routeRefreshStatesObserver);
method public void requestImmediateRouteRefresh();
Expand Down Expand Up @@ -983,6 +987,46 @@ package com.mapbox.navigation.core.routerefresh {

}

package com.mapbox.navigation.core.sensor {

@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public abstract class SensorData {
}

public static final class SensorData.Lane extends com.mapbox.navigation.core.sensor.SensorData {
ctor public SensorData.Lane(int currentLaneIndex, int laneCount);
method public int getCurrentLaneIndex();
method public int getLaneCount();
property public final int currentLaneIndex;
property public final int laneCount;
}

public static final class SensorData.Weather extends com.mapbox.navigation.core.sensor.SensorData {
ctor public SensorData.Weather(com.mapbox.navigation.core.sensor.SensorData.Weather.Condition condition);
method public com.mapbox.navigation.core.sensor.SensorData.Weather.Condition getCondition();
property public final com.mapbox.navigation.core.sensor.SensorData.Weather.Condition condition;
}

public abstract static class SensorData.Weather.Condition {
}

public static final class SensorData.Weather.Condition.Fog extends com.mapbox.navigation.core.sensor.SensorData.Weather.Condition {
field public static final com.mapbox.navigation.core.sensor.SensorData.Weather.Condition.Fog INSTANCE;
}

public static final class SensorData.Weather.Condition.Rain extends com.mapbox.navigation.core.sensor.SensorData.Weather.Condition {
field public static final com.mapbox.navigation.core.sensor.SensorData.Weather.Condition.Rain INSTANCE;
}

public static final class SensorData.Weather.Condition.Snow extends com.mapbox.navigation.core.sensor.SensorData.Weather.Condition {
field public static final com.mapbox.navigation.core.sensor.SensorData.Weather.Condition.Snow INSTANCE;
}

@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public fun interface UpdateExternalSensorDataCallback {
method public void onResult(boolean result);
}

}

package com.mapbox.navigation.core.telemetry {

public final class MapboxNavigationTelemetryKt {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ import com.mapbox.navigation.core.routealternatives.RouteAlternativesRequestCall
import com.mapbox.navigation.core.routeoptions.RouteOptionsUpdater
import com.mapbox.navigation.core.routerefresh.RouteRefreshController
import com.mapbox.navigation.core.routerefresh.RouteRefreshControllerProvider
import com.mapbox.navigation.core.sensor.SensorData
import com.mapbox.navigation.core.sensor.UpdateExternalSensorDataCallback
import com.mapbox.navigation.core.telemetry.MapboxNavigationTelemetry
import com.mapbox.navigation.core.telemetry.events.FeedbackEvent
import com.mapbox.navigation.core.telemetry.events.FeedbackHelper
Expand Down Expand Up @@ -134,6 +136,8 @@ import com.mapbox.navigation.utils.internal.logD
import com.mapbox.navigation.utils.internal.logE
import com.mapbox.navigation.utils.internal.logI
import com.mapbox.navigation.utils.internal.monitorChannelWithException
import com.mapbox.navigator.ADASISv2MessageCallback
import com.mapbox.navigator.AdasisConfig
import com.mapbox.navigator.AlertsServiceOptions
import com.mapbox.navigator.ConfigHandle
import com.mapbox.navigator.ElectronicHorizonOptions
Expand Down Expand Up @@ -1961,6 +1965,40 @@ class MapboxNavigation @VisibleForTesting internal constructor(
)
}

/**
* Asynchronously passes in the current sensor data of the user.
*
* @param data The current sensor data of user
* @param callback Callback which is called when the async operation is completed
*/
@ExperimentalPreviewMapboxNavigationAPI
fun updateExternalSensorData(data: SensorData, callback: UpdateExternalSensorDataCallback) {
navigator.updateExternalSensorData(data.toNativeSensorData()) {
callback.onResult(it)
}
}

/**
* TODO use platform types?
*
* Sets a callback for ADASIS messages
*
* @param callback Message callback
* @param adasisConfig Adasis config
*/
@ExperimentalPreviewMapboxNavigationAPI
fun setAdasisMessageCallback(callback: ADASISv2MessageCallback, adasisConfig: AdasisConfig) {
navigator.setAdasisMessageCallback(callback, adasisConfig)
}

/**
* Resets a callback for ADASIS messages
*/
@ExperimentalPreviewMapboxNavigationAPI
fun resetAdasisMessageCallback() {
navigator.resetAdasisMessageCallback()
}

internal fun registerOnRoutesSetStartedObserver(observer: SetNavigationRoutesStartedObserver) {
directionsSession.registerSetNavigationRoutesStartedObserver(observer)
}
Expand Down
Loading