Skip to content

Commit 8615bab

Browse files
committed
NAVAND-777: move refresh related APIs to RouteRefreshController
1 parent 0b526d3 commit 8615bab

File tree

14 files changed

+215
-180
lines changed

14 files changed

+215
-180
lines changed
Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,18 @@
1-
- Added `MapboxNavigation#refreshRoutesImmediately` to trigger route refresh request immediately.
1+
- Added `RouteRefreshController` interface to manage route refreshes. Retrieve it via `MapboxNavigation#routeRefreshController`.
2+
- Added `RouteRefreshController#requestImmediateRouteRefresh` to trigger route refresh request immediately.
3+
- Moved `MapboxNavigation#registerRouteRefreshStateObserver` to `RouteRefreshController#registerRouteRefreshStateObserver`. To migrate, change:
4+
```kotlin
5+
mapboxNavigation.registerRouteRefreshStateObserver(observer)
6+
```
7+
to
8+
```kotlin
9+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
10+
```
11+
- Moved `MapboxNavigation#unregisterRouteRefreshStateObserver` to `RouteRefreshController#unregisterRouteRefreshStateObserver`. To migrate, change:
12+
```kotlin
13+
mapboxNavigation.unregisterRouteRefreshStateObserver(observer)
14+
```
15+
to
16+
```kotlin
17+
mapboxNavigation.routeRefreshController.unregisterRouteRefreshStateObserver(observer)
18+
```

instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/RouteRefreshOnDemandTest.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.annotation.IntegerRes
55
import com.mapbox.api.directions.v5.DirectionsCriteria
66
import com.mapbox.api.directions.v5.models.RouteOptions
77
import com.mapbox.geojson.Point
8+
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
89
import com.mapbox.navigation.base.extensions.applyDefaultNavigationOptions
910
import com.mapbox.navigation.base.options.NavigationOptions
1011
import com.mapbox.navigation.base.options.RoutingTilesOptions
@@ -44,6 +45,7 @@ import org.junit.Test
4445
import java.net.URI
4546
import java.util.concurrent.TimeUnit
4647

48+
@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
4749
class RouteRefreshOnDemandTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.java) {
4850

4951
@get:Rule
@@ -95,7 +97,7 @@ class RouteRefreshOnDemandTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::
9597
stayOnInitialPosition()
9698
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
9799

98-
mapboxNavigation.refreshRoutesImmediately()
100+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
99101
val refreshedRoutes = mapboxNavigation.routesUpdates()
100102
.filter { it.reason == RoutesExtra.ROUTES_UPDATE_REASON_REFRESH }
101103
.first()
@@ -138,7 +140,7 @@ class RouteRefreshOnDemandTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::
138140
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
139141
delay(2500)
140142

141-
mapboxNavigation.refreshRoutesImmediately()
143+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
142144
mapboxNavigation.routesUpdates()
143145
.filter { it.reason == RoutesExtra.ROUTES_UPDATE_REASON_REFRESH }
144146
.first()
@@ -177,7 +179,7 @@ class RouteRefreshOnDemandTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::
177179
stayOnInitialPosition()
178180
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
179181

180-
mapboxNavigation.refreshRoutesImmediately()
182+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
181183
delay(2000)
182184
assertEquals(0, refreshes.size)
183185
}
@@ -196,9 +198,9 @@ class RouteRefreshOnDemandTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::
196198
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
197199

198200
delay(7000) // 2 failed planned attempts + accuracy
199-
mapboxNavigation.refreshRoutesImmediately() // fail and postpone next planned attempt
201+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh() // fail and postpone next planned attempt
200202
delay(2000)
201-
mapboxNavigation.refreshRoutesImmediately() // dispatch new routes with REFRESH reason
203+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh() // dispatch new routes with REFRESH reason
202204

203205
mapboxNavigation.routesUpdates()
204206
.filter { it.reason == RoutesExtra.ROUTES_UPDATE_REASON_REFRESH }

instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/RouteRefreshStateTest.kt

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
8383
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
8484
mapboxNavigation.clearNavigationRoutesAndWaitForUpdate()
8585
delay(2000) // refresh interval + accuracy
86-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
87-
mapboxNavigation.refreshRoutesImmediately()
86+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
87+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
8888

8989
assertEquals(emptyList<String>(), observer.getStatesSnapshot())
9090
}
@@ -107,8 +107,8 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
107107

108108
delay(7000) // refresh interval + accuracy
109109

110-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
111-
mapboxNavigation.refreshRoutesImmediately()
110+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
111+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
112112
delay(1000) // accuracy
113113

114114
assertEquals(
@@ -132,7 +132,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
132132
)
133133

134134
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(1_000))
135-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
135+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
136136
mapboxNavigation.startTripSession()
137137
val requestedRoutes = requestRoutes(enableRefresh = false)
138138
mapboxNavigation.setNavigationRoutes(requestedRoutes)
@@ -157,7 +157,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
157157
)
158158

159159
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(10_000))
160-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
160+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
161161
mapboxNavigation.startTripSession()
162162
val requestedRoutes = requestRoutes()
163163
mapboxNavigation.setNavigationRoutes(requestedRoutes)
@@ -185,7 +185,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
185185
)
186186

187187
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5000))
188-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
188+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
189189
mapboxNavigation.startTripSession()
190190
val requestedRoutes = requestRoutes()
191191
mapboxNavigation.setNavigationRoutes(requestedRoutes)
@@ -223,7 +223,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
223223
)
224224

225225
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
226-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
226+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
227227
mapboxNavigation.startTripSession()
228228
val requestedRoutes = requestRoutes()
229229
mapboxNavigation.setNavigationRoutes(requestedRoutes)
@@ -254,7 +254,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
254254
)
255255

256256
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(4_000))
257-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
257+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
258258
mapboxNavigation.startTripSession()
259259
val requestedRoutes = requestRoutes()
260260
mapboxNavigation.setNavigationRoutes(requestedRoutes)
@@ -287,7 +287,7 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
287287
)
288288

289289
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
290-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
290+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
291291
mapboxNavigation.startTripSession()
292292
val requestedRoutes = requestRoutes()
293293
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
@@ -314,11 +314,11 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
314314
)
315315

316316
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(10_000))
317-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
317+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
318318
mapboxNavigation.startTripSession()
319319
val requestedRoutes = requestRoutes()
320320
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
321-
mapboxNavigation.refreshRoutesImmediately()
321+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
322322

323323
waitForRefresh()
324324

@@ -346,11 +346,11 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
346346
)
347347

348348
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(10_000))
349-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
349+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
350350
mapboxNavigation.startTripSession()
351351
val requestedRoutes = requestRoutes()
352352
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
353-
mapboxNavigation.refreshRoutesImmediately()
353+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
354354

355355
delay(2500) // execute request
356356

@@ -380,16 +380,16 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
380380
)
381381

382382
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(20_000))
383-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
383+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
384384
mapboxNavigation.startTripSession()
385385
val requestedRoutes = requestRoutes()
386386
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
387387

388-
mapboxNavigation.refreshRoutesImmediately()
388+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
389389
delay(2000) // start refresh request
390-
mapboxNavigation.refreshRoutesImmediately()
391-
mapboxNavigation.refreshRoutesImmediately()
392-
mapboxNavigation.refreshRoutesImmediately()
390+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
391+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
392+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
393393
delay(4000)
394394

395395
waitForRefresh()
@@ -418,12 +418,12 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
418418
)
419419

420420
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
421-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
421+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
422422
mapboxNavigation.startTripSession()
423423
val requestedRoutes = requestRoutes()
424424
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
425425

426-
mapboxNavigation.refreshRoutesImmediately()
426+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
427427
delay(5000)
428428

429429
waitForRefreshes(2) // immediate + planned
@@ -453,12 +453,12 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
453453
)
454454

455455
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
456-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
456+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
457457
mapboxNavigation.startTripSession()
458458
val requestedRoutes = requestRoutes()
459459
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
460460

461-
mapboxNavigation.refreshRoutesImmediately()
461+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
462462
delay(5000)
463463

464464
waitForRefresh()
@@ -488,13 +488,13 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
488488
)
489489

490490
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
491-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
491+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
492492
mapboxNavigation.startTripSession()
493493
val requestedRoutes = requestRoutes()
494494
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
495495
delay(8000) // refresh interval + accuracy
496496

497-
mapboxNavigation.refreshRoutesImmediately()
497+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
498498

499499
waitForRefreshes(2) // one from immediate and the next planned
500500

@@ -525,13 +525,13 @@ class RouteRefreshStateTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::cla
525525
)
526526

527527
createMapboxNavigation(createRouteRefreshOptionsWithInvalidInterval(5_000))
528-
mapboxNavigation.registerRouteRefreshStateObserver(observer)
528+
mapboxNavigation.routeRefreshController.registerRouteRefreshStateObserver(observer)
529529
mapboxNavigation.startTripSession()
530530
val requestedRoutes = requestRoutes()
531531
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
532532
delay(8000) // refresh interval + accuracy
533533

534-
mapboxNavigation.refreshRoutesImmediately()
534+
mapboxNavigation.routeRefreshController.requestImmediateRouteRefresh()
535535

536536
waitForRefresh()
537537

0 commit comments

Comments
 (0)