Skip to content

Commit 542aa2a

Browse files
committed
parse alternative metadata for route preview
1 parent 5dc7386 commit 542aa2a

File tree

2 files changed

+21
-24
lines changed

2 files changed

+21
-24
lines changed
Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,25 @@
11
package com.mapbox.navigation.instrumentation_tests.core
22

33
import android.location.Location
4-
import com.mapbox.api.directions.v5.DirectionsCriteria
5-
import com.mapbox.api.directions.v5.models.RouteOptions
64
import com.mapbox.navigation.base.options.NavigationOptions
7-
import com.mapbox.navigation.base.route.NavigationRoute
8-
import com.mapbox.navigation.base.route.RouterOrigin
95
import com.mapbox.navigation.core.MapboxNavigation
106
import com.mapbox.navigation.core.MapboxNavigationProvider
11-
import com.mapbox.navigation.core.RoutesSetError
127
import com.mapbox.navigation.core.directions.session.RoutesExtra
138
import com.mapbox.navigation.instrumentation_tests.activity.EmptyTestActivity
149
import com.mapbox.navigation.instrumentation_tests.utils.MapboxNavigationRule
1510
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.sdkTest
16-
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.setNavigationRoutesAsync
17-
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.waitForNewRoute
1811
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.waitForPreviewRoute
19-
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.withLogOnTimeout
2012
import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider
2113
import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider.toNavigationRoutes
2214
import com.mapbox.navigation.testing.ui.BaseTest
2315
import com.mapbox.navigation.testing.ui.utils.getMapboxAccessTokenFromResources
2416
import com.mapbox.navigation.testing.ui.utils.runOnMainSync
2517
import kotlinx.coroutines.async
26-
import kotlinx.coroutines.delay
27-
import org.junit.Assert
2818
import org.junit.Assert.assertEquals
2919
import org.junit.Assert.assertNotNull
30-
import org.junit.Assert.assertTrue
3120
import org.junit.Before
3221
import org.junit.Rule
3322
import org.junit.Test
34-
import java.util.concurrent.TimeUnit
35-
import kotlin.coroutines.resume
36-
import kotlin.coroutines.suspendCoroutine
3723

3824
class PreviewRoutesTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.java) {
3925

@@ -58,20 +44,23 @@ class PreviewRoutesTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.j
5844
}
5945

6046
@Test
61-
fun preview_routes() = sdkTest {
62-
val routes = RoutesProvider.dc_very_short(activity).toNavigationRoutes()
63-
mapboxNavigation.startTripSession()
64-
val routeObserverDeffer = async {
47+
fun preview_routes() = sdkTest(timeout = Long.MAX_VALUE) {
48+
val routes = RoutesProvider.dc_short_with_alternative(activity).toNavigationRoutes()
49+
//mapboxNavigation.startTripSession() <- this breaks tests because of resetting the route
50+
val previewedRouteDeffer = async {
6551
mapboxNavigation.waitForPreviewRoute()
6652
}
6753

6854
mapboxNavigation.previewNavigationRoutes(routes)
6955

70-
val currentRoutes = mapboxNavigation.getNavigationRoutes()
71-
val routeFromCallback = routeObserverDeffer.await()
72-
assertEquals(routes, currentRoutes)
73-
assertEquals(routes, routeFromCallback.navigationRoutes)
74-
assertEquals(RoutesExtra.ROUTES_UPDATE_REASON_PREVIEW, routeFromCallback.reason)
56+
val previewRouteUpdate = previewedRouteDeffer.await()
57+
assertEquals(routes, previewRouteUpdate.navigationRoutes)
58+
assertEquals(RoutesExtra.ROUTES_UPDATE_REASON_PREVIEW, previewRouteUpdate.reason)
59+
60+
val previewedRouteMetadata = mapboxNavigation.getAlternativeMetadataFor(
61+
previewRouteUpdate.navigationRoutes[1]
62+
)
63+
assertNotNull(previewedRouteMetadata)
7564
}
7665

7766
}

libnavigation-core/src/main/java/com/mapbox/navigation/core/MapboxNavigation.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,15 @@ class MapboxNavigation @VisibleForTesting internal constructor(
838838
routes: List<NavigationRoute>,
839839
initialLegIndex: Int = 0,
840840
) {
841-
//TODO: parse alternatives metadata using NN and set it route alternatives controller
841+
val alternatives = routes.drop(1)
842+
val routesData = RouteParser.createRoutesData(
843+
routes.first().nativeRoute(),
844+
alternatives.map { it.nativeRoute() }
845+
)
846+
routeAlternativesController.processAlternativesMetadata(
847+
routes,
848+
routesData.alternativeRoutes()
849+
)
842850
directionsSession.setRoutes(routes, BasicSetRoutesInfo(RoutesExtra.ROUTES_UPDATE_REASON_PREVIEW, initialLegIndex))
843851
}
844852

0 commit comments

Comments
 (0)