fix: Custom navigation events

This commit is contained in:
Piotr Dec 2024-08-09 01:25:35 +02:00
parent 65cdeb17d0
commit ffbd7c46b8
Signed by: stawros
GPG key ID: F89F27AD8F881A91
5 changed files with 97 additions and 27 deletions

View file

@ -4,6 +4,7 @@ import android.content.res.Configuration
import android.content.res.Resources
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.mapbox.geojson.Point
import com.mapbox.maps.ImageHolder
import com.mapbox.maps.plugin.LocationPuck2D
import com.mapbox.maps.plugin.animation.camera
@ -48,6 +49,8 @@ class MapControl(
*/
val navigationLocationProvider = NavigationLocationProvider()
val navigationStatusControl = NavigationStatusControl()
val replay = ReplayResources(this)
// Observers
@ -59,7 +62,6 @@ class MapControl(
private lateinit var routeProgressObserver: RouteProgressObserver
private lateinit var voiceInstructionsObserver: VoiceInstructionsObserver
private val searchControl = SearchControl(this, ui)
private val navigationStateListener = NavigationStateListener()
fun init() {
viewportDataSource = MapboxNavigationViewportDataSource(ui.mapView.mapboxMap)
@ -105,6 +107,10 @@ class MapControl(
voiceInstructionsObserver = voiceControl.voiceInstructionsObserver
}
fun routeToPoint(point: Point) {
routeControl.findRoute(point)
}
fun initNavigation() {
MapboxNavigationApp.setup(
NavigationOptions.Builder(context)
@ -135,7 +141,8 @@ class MapControl(
mapboxNavigation.registerLocationObserver(locationObserver)
mapboxNavigation.registerRouteProgressObserver(routeProgressObserver)
mapboxNavigation.registerVoiceInstructionsObserver(voiceInstructionsObserver)
mapboxNavigation.registerNavigationSessionStateObserver(navigationStateListener)
navigationStatusControl.registerObserver(searchControl)
replay.onAttached(mapboxNavigation)
}
@ -145,7 +152,8 @@ class MapControl(
mapboxNavigation.unregisterLocationObserver(locationObserver)
mapboxNavigation.unregisterRouteProgressObserver(routeProgressObserver)
mapboxNavigation.unregisterVoiceInstructionsObserver(voiceInstructionsObserver)
mapboxNavigation.unregisterNavigationSessionStateObserver(navigationStateListener)
navigationStatusControl.unregisterObserver(searchControl)
replay.onDetached(mapboxNavigation)
}