@@ -10,6 +10,7 @@ import android.view.View.VISIBLE
1010import android.widget.Toast
1111import androidx.appcompat.app.AppCompatActivity
1212import androidx.core.content.ContextCompat
13+ import androidx.lifecycle.lifecycleScope
1314import com.mapbox.api.directions.v5.models.RouteOptions
1415import com.mapbox.bindgen.Expected
1516import com.mapbox.geojson.Point
@@ -52,6 +53,7 @@ import com.mapbox.navigation.ui.maps.location.NavigationLocationProvider
5253import com.mapbox.navigation.ui.maps.route.arrow.api.MapboxRouteArrowApi
5354import com.mapbox.navigation.ui.maps.route.arrow.api.MapboxRouteArrowView
5455import com.mapbox.navigation.ui.maps.route.arrow.model.RouteArrowOptions
56+ import com.mapbox.navigation.ui.maps.route.line.MapboxRouteLineApiExtensions.setNavigationRoutes
5557import com.mapbox.navigation.ui.maps.route.line.MapboxRouteLineApiExtensions.setRoutes
5658import com.mapbox.navigation.ui.maps.route.line.api.MapboxRouteLineApi
5759import com.mapbox.navigation.ui.maps.route.line.api.MapboxRouteLineView
@@ -231,15 +233,19 @@ class MapboxNavigationActivity : AppCompatActivity() {
231233 }
232234
233235 private val routesObserver = RoutesObserver { result ->
234- if (result.routes .isNotEmpty()) {
236+ if (result.navigationRoutes .isNotEmpty()) {
235237 // generate route geometries asynchronously and render them
236- CoroutineScope (Dispatchers .Main ).launch {
237- val result = routeLineAPI.setRoutes(
238- listOf (RouteLine (result.routes.first(), null ))
239- )
240- val style = mapboxMap.getStyle()
241- if (style != null ) {
242- routeLineView.renderRouteDrawData(style, result)
238+ lifecycleScope.launch {
239+ routeLineAPI.setNavigationRoutes(
240+ newRoutes = result.navigationRoutes,
241+ alternativeRoutesMetadata = mapboxNavigation.getAlternativeMetadataFor(
242+ result.navigationRoutes
243+ )
244+ ).apply {
245+ routeLineView.renderRouteDrawData(
246+ binding.mapView.getMapboxMap().getStyle()!! ,
247+ this
248+ )
243249 }
244250 }
245251
@@ -472,6 +478,7 @@ class MapboxNavigationActivity : AppCompatActivity() {
472478 RouteOptions .builder()
473479 .applyDefaultNavigationOptions()
474480 .applyLanguageAndVoiceUnitOptions(this )
481+ .alternatives(true )
475482 .coordinatesList(listOf (origin) + waypoints)
476483 .build(),
477484 object : NavigationRouterCallback {
0 commit comments