Skip to content

Commit 7490829

Browse files
NN 132 (#7137)
1 parent 41523ac commit 7490829

File tree

10 files changed

+108
-7
lines changed

10 files changed

+108
-7
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- Improved quality of continuous alternatives, now the mechanism respects routes from current navigation session.
2+
- Improved EV offline navigation, now it fallbacks to a regular onboard routing.
3+
- Improved location simulation when DR ends, i.e. when a driver leaves a tunnel.

gradle/dependencies.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ ext {
1313
// version which we should use in this build
1414
def mapboxNavigatorVersion = System.getenv("FORCE_MAPBOX_NAVIGATION_NATIVE_VERSION")
1515
if (mapboxNavigatorVersion == null || mapboxNavigatorVersion == '') {
16-
mapboxNavigatorVersion = '131.0.0'
16+
mapboxNavigatorVersion = '132.0.0'
1717
}
1818
println("Navigation Native version: " + mapboxNavigatorVersion)
1919

2020
version = [
21-
mapboxMapSdk : '10.13.0-beta.1',
21+
mapboxMapSdk : '10.13.0-rc.1',
2222
mapboxSdkServices : '6.11.0',
2323
mapboxNavigator : "${mapboxNavigatorVersion}",
24-
mapboxCommonNative : '23.5.0-beta.1',
24+
mapboxCommonNative : '23.5.0-rc.1',
2525
mapboxCrashMonitor : '2.0.0',
2626
mapboxAnnotationPlugin : '0.8.0',
2727
mapboxBaseAndroid : '0.8.0',

libnavigation-base/src/main/java/com/mapbox/navigation/base/internal/factory/RoadObjectFactory.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.mapbox.navigation.base.trip.model.roadobject.UpcomingRoadObject
66
import com.mapbox.navigation.base.trip.model.roadobject.distanceinfo.RoadObjectDistanceInfo
77
import com.mapbox.navigation.base.trip.model.roadobject.mapToRoadObject
88
import com.mapbox.navigator.RoadObjectType
9-
import com.mapbox.navigator.UpcomingRouteAlert
109
import com.mapbox.navigator.UpcomingRouteAlertUpdate
1110

1211
/**

libnavigation-base/src/main/java/com/mapbox/navigation/base/trip/model/eh/EHorizonMapper.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ internal fun RoadObjectType.mapToRoadObjectType(): Int {
276276
RoadObjectType.RAILWAY_CROSSING -> SDKRoadObjectType.RAILWAY_CROSSING
277277
RoadObjectType.IC -> SDKRoadObjectType.IC
278278
RoadObjectType.JCT -> SDKRoadObjectType.JCT
279+
RoadObjectType.NOTIFICATION -> SDKRoadObjectType.NOTIFICATION
279280
}
280281
}
281282

libnavigation-base/src/main/java/com/mapbox/navigation/base/trip/model/roadobject/RoadObjectMapper.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.mapbox.navigation.base.trip.model.roadobject.custom.Custom
99
import com.mapbox.navigation.base.trip.model.roadobject.ic.Interchange
1010
import com.mapbox.navigation.base.trip.model.roadobject.incident.Incident
1111
import com.mapbox.navigation.base.trip.model.roadobject.jct.Junction
12+
import com.mapbox.navigation.base.trip.model.roadobject.notification.Notification
1213
import com.mapbox.navigation.base.trip.model.roadobject.railwaycrossing.RailwayCrossing
1314
import com.mapbox.navigation.base.trip.model.roadobject.restrictedarea.RestrictedArea
1415
import com.mapbox.navigation.base.trip.model.roadobject.reststop.RestStop
@@ -145,6 +146,13 @@ internal fun com.mapbox.navigator.RoadObject.mapToRoadObject(): RoadObject {
145146
isUrban,
146147
this,
147148
)
149+
RoadObjectType.NOTIFICATION -> Notification(
150+
id,
151+
length,
152+
provider,
153+
isUrban,
154+
this
155+
)
148156
}
149157
}
150158

libnavigation-base/src/main/java/com/mapbox/navigation/base/trip/model/roadobject/RoadObjectType.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ object RoadObjectType {
7575
*/
7676
const val JCT = 10
7777

78+
/**
79+
* Not finished yet, see https://mapbox.atlassian.net/browse/NAVAND-1311
80+
*/
81+
internal const val NOTIFICATION = 11
82+
7883
/**
7984
* Retention policy for the RoadObjectType
8085
*/
@@ -91,6 +96,7 @@ object RoadObjectType {
9196
RAILWAY_CROSSING,
9297
IC,
9398
JCT,
99+
NOTIFICATION
94100
)
95101
annotation class Type
96102
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.mapbox.navigation.base.trip.model.roadobject.notification
2+
3+
import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
4+
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectProvider
5+
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
6+
7+
/**
8+
* Road object type that provides information about notification on the route.
9+
*
10+
* @see RoadObject
11+
* @see RoadObjectType.NOTIFICATION
12+
*/
13+
internal class Notification internal constructor(
14+
id: String,
15+
length: Double?,
16+
@RoadObjectProvider.Type provider: String,
17+
isUrban: Boolean?,
18+
nativeRoadObject: com.mapbox.navigator.RoadObject,
19+
) : RoadObject(
20+
id,
21+
RoadObjectType.NOTIFICATION,
22+
length,
23+
provider,
24+
isUrban,
25+
nativeRoadObject
26+
) {
27+
28+
/**
29+
* Indicates whether some other object is "equal to" this one.
30+
*/
31+
override fun equals(other: Any?): Boolean {
32+
if (this === other) return true
33+
if (javaClass != other?.javaClass) return false
34+
if (!super.equals(other)) return false
35+
36+
return true
37+
}
38+
39+
/**
40+
* Returns a hash code value for the object.
41+
*/
42+
override fun hashCode(): Int {
43+
return super.hashCode()
44+
}
45+
46+
/**
47+
* Returns a string representation of the object.
48+
*/
49+
override fun toString(): String {
50+
return "Notification"
51+
}
52+
}

libnavigation-base/src/test/java/com/mapbox/navigation/base/internal/factory/RoadObjectFactoryTest.kt

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.mapbox.navigation.base.trip.model.roadobject.incident.IncidentImpact
1717
import com.mapbox.navigation.base.trip.model.roadobject.incident.IncidentInfo
1818
import com.mapbox.navigation.base.trip.model.roadobject.incident.IncidentType
1919
import com.mapbox.navigation.base.trip.model.roadobject.jct.Junction
20+
import com.mapbox.navigation.base.trip.model.roadobject.notification.Notification
2021
import com.mapbox.navigation.base.trip.model.roadobject.railwaycrossing.RailwayCrossing
2122
import com.mapbox.navigation.base.trip.model.roadobject.railwaycrossing.RailwayCrossingInfo
2223
import com.mapbox.navigation.base.trip.model.roadobject.restrictedarea.RestrictedArea
@@ -293,6 +294,23 @@ class RoadObjectFactoryTest {
293294
assertEquals(RoadObjectType.RAILWAY_CROSSING, roadObject.objectType)
294295
}
295296

297+
@Test
298+
fun `buildRoadObject - unsupported notification`() {
299+
val nativeObject = notification
300+
301+
val expected = Notification(
302+
ID,
303+
LENGTH,
304+
SDKRoadObjectProvider.MAPBOX,
305+
false,
306+
nativeObject
307+
)
308+
309+
val roadObject = RoadObjectFactory.buildRoadObject(nativeObject)
310+
311+
assertEquals(expected, roadObject)
312+
}
313+
296314
@Test
297315
fun `toUpcomingRoadObjects - should map native to SDK UpcomingRoadObjects`() {
298316
val nativeObjects: List<com.mapbox.navigator.UpcomingRouteAlert> = listOf(
@@ -306,14 +324,18 @@ class RoadObjectFactoryTest {
306324
incident,
307325
railwayCrossing,
308326
ic,
309-
jct
327+
jct,
328+
notification
310329
).mapIndexed { distanceToStart, roadObject ->
311330
UpcomingRouteAlert(roadObject, distanceToStart.toDouble())
312331
}
332+
// notification object isn't supported yet,
333+
// see https://mapbox.atlassian.net/browse/NAVAND-1311
334+
val unsupportedObjectsCount = 1
313335

314336
val sdkObjects = nativeObjects.toUpcomingRoadObjects()
315337

316-
assertEquals(nativeObjects.size, sdkObjects.size)
338+
assertEquals(nativeObjects.size - unsupportedObjectsCount, sdkObjects.size)
317339
assertTrue(sdkObjects[0].roadObject is Tunnel)
318340
assertTrue(sdkObjects[1].roadObject is CountryBorderCrossing)
319341
assertTrue(sdkObjects[2].roadObject is TollCollection)
@@ -325,7 +347,7 @@ class RoadObjectFactoryTest {
325347
assertTrue(sdkObjects[8].roadObject is RailwayCrossing)
326348
assertTrue(sdkObjects[9].roadObject is Interchange)
327349
assertTrue(sdkObjects[10].roadObject is Junction)
328-
sdkObjects.forEachIndexed { distanceToStart, obj ->
350+
sdkObjects.dropLast(unsupportedObjectsCount).forEachIndexed { distanceToStart, obj ->
329351
assertEquals(distanceToStart.toDouble(), obj.distanceToStart)
330352
}
331353
}
@@ -495,6 +517,11 @@ class RoadObjectFactoryTest {
495517
location = matchedRoadObjectLocation(location.shape),
496518
)
497519

520+
private val notification = createRoadObject(
521+
type = com.mapbox.navigator.RoadObjectType.NOTIFICATION,
522+
location = matchedRoadObjectLocation(location.shape)
523+
)
524+
498525
private fun createRoadObject(
499526
type: com.mapbox.navigator.RoadObjectType,
500527
location: MatchedRoadObjectLocation,

libnavigation-base/src/test/java/com/mapbox/navigation/base/trip/model/eh/EHorizonMapperMapToRoadObjectTypeTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ internal class EHorizonMapperMapToRoadObjectTypeTest(
3838
arrayOf<Any>(RoadObjectType.RAILWAY_CROSSING, SDKRoadObjectType.RAILWAY_CROSSING),
3939
arrayOf<Any>(RoadObjectType.IC, SDKRoadObjectType.IC),
4040
arrayOf<Any>(RoadObjectType.JCT, SDKRoadObjectType.JCT),
41+
arrayOf<Any>(RoadObjectType.NOTIFICATION, SDKRoadObjectType.NOTIFICATION),
4142
)
4243
assertEquals(RoadObjectType.values().size, result.size)
4344
return result

libtesting-thirdparty/src/main/java/com/mapbox/navigation/testing/factories/NativeFactories.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ package com.mapbox.navigation.testing.factories
33
import com.mapbox.api.directions.v5.models.StepManeuver
44
import com.mapbox.geojson.Point
55
import com.mapbox.navigator.ActiveGuidanceInfo
6+
import com.mapbox.navigator.AlternativeRouteInfo
67
import com.mapbox.navigator.BannerInstruction
78
import com.mapbox.navigator.BannerSection
89
import com.mapbox.navigator.FixLocation
910
import com.mapbox.navigator.MapMatcherOutput
1011
import com.mapbox.navigator.NavigationStatus
1112
import com.mapbox.navigator.RoadName
13+
import com.mapbox.navigator.RouteIndices
1214
import com.mapbox.navigator.RouteInfo
1315
import com.mapbox.navigator.RouteInterface
1416
import com.mapbox.navigator.RouteState
@@ -50,6 +52,7 @@ fun createNavigationStatus(
5052
upcomingRouteAlertUpdates: List<UpcomingRouteAlertUpdate> = emptyList(),
5153
nextWaypointIndex: Int = 0,
5254
layer: Int = 0,
55+
alternativeRouteIndices: List<RouteIndices> = emptyList()
5356
): NavigationStatus {
5457
return NavigationStatus(
5558
routeState,
@@ -65,6 +68,7 @@ fun createNavigationStatus(
6568
geometryIndex,
6669
shapeIndex,
6770
intersectionIndex,
71+
alternativeRouteIndices,
6872
roads,
6973
voiceInstruction,
7074
bannerInstruction,

0 commit comments

Comments
 (0)