MapboxNavigationObserver

Defines an object that needs to interact with or observe MapboxNavigation. Use the MapboxNavigationApp singleton to register and unregister observers with MapboxNavigationApp.registerObserver and MapboxNavigationApp.unregisterObserver.

Example of observing locations with a view model

class MyViewModel : ViewModel() {
private val locationObserver = MyLocationObserver()

val location: LiveData<Location> = locationObserver.location.asLiveData()

init {
MapboxNavigationApp.register(locationObserver)
}

override fun onCleared() {
MapboxNavigationApp.unregister(locationObserver)
}
}

class MyLocationObserver : MapboxNavigationObserver {
private val mutableLocation = MutableStateFlow<LocationMatcherResult?>(null)
val locationFlow: Flow<LocationMatcherResult?> = mutableLocation

private val locationObserver = object : LocationObserver {
override fun onNewLocationMatcherResult(locationMatcherResult: LocationMatcherResult) {
mutableLocation.value = locationMatcherResult
}

override fun onNewRawLocation(rawLocation: Location) {
// no op
}
}

override fun onAttached(mapboxNavigation: MapboxNavigation) {
mapboxNavigation.registerLocationObserver(locationObserver)
}

override fun onDetached(mapboxNavigation: MapboxNavigation) {
mapboxNavigation.unregisterLocationObserver(locationObserver)
}
}

Inheritors

Functions

Link copied to clipboard
abstract fun onAttached(mapboxNavigation: MapboxNavigation)

Signals that the mapboxNavigation instance is ready for use. Use this function to register mapboxNavigation observers, such as MapboxNavigation.registerRoutesObserver.

Link copied to clipboard
abstract fun onDetached(mapboxNavigation: MapboxNavigation)

Signals that the mapboxNavigation instance is being detached. Use this function to unregister mapboxNavigation observers that were registered in onAttached.