Skip to content

Commit d1e509c

Browse files
committed
NAVAND-777: add docs
1 parent 52cfe9c commit d1e509c

4 files changed

Lines changed: 29 additions & 4 deletions

File tree

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

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ package com.mapbox.navigation.core.routerefresh
22

33
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
44
import com.mapbox.navigation.base.route.NavigationRoute
5+
import com.mapbox.navigation.core.directions.session.RoutesObserver
56
import com.mapbox.navigation.utils.internal.logI
67
import kotlinx.coroutines.Job
78

8-
@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
9+
/**
10+
* This class lets you manage route refreshes.
11+
*/
12+
@ExperimentalPreviewMapboxNavigationAPI
913
class RouteRefreshController internal constructor(
1014
private val routeRefreshParentJob: Job,
1115
private val plannedRouteRefreshController: PlannedRouteRefreshController,
@@ -15,18 +19,37 @@ class RouteRefreshController internal constructor(
1519
private val routeRefresherResultProcessor: RouteRefresherResultProcessor,
1620
) {
1721

22+
/**
23+
* Register a [RouteRefreshStatesObserver] to be notified of Route refresh state changes.
24+
*
25+
* @param routeRefreshStatesObserver RouteRefreshStatesObserver
26+
*/
1827
fun registerRouteRefreshStateObserver(
1928
routeRefreshStatesObserver: RouteRefreshStatesObserver
2029
) {
2130
stateHolder.registerRouteRefreshStateObserver(routeRefreshStatesObserver)
2231
}
2332

33+
/**
34+
* Unregisters a [RouteRefreshStatesObserver].
35+
*
36+
* @param routeRefreshStatesObserver RouteRefreshStatesObserver
37+
*/
2438
fun unregisterRouteRefreshStateObserver(
2539
routeRefreshStatesObserver: RouteRefreshStatesObserver
2640
) {
2741
stateHolder.unregisterRouteRefreshStateObserver(routeRefreshStatesObserver)
2842
}
2943

44+
/**
45+
* Immediately refresh current navigation routes.
46+
* Listen for refreshed routes using [RoutesObserver].
47+
*
48+
* The on-demand refresh request is not guaranteed to succeed and call the [RoutesObserver],
49+
* [requestImmediateRouteRefresh] invocations cannot be coupled with
50+
* [RoutesObserver.onRoutesChanged] callbacks for state management.
51+
* You can use [registerRouteRefreshStateObserver] to monitor refresh statuses independently.
52+
*/
3053
fun requestImmediateRouteRefresh() {
3154
val routes = plannedRouteRefreshController.routesToRefresh
3255
if (routes.isNullOrEmpty()) {

libnavigation-core/src/test/java/com/mapbox/navigation/core/MapboxNavigationBaseTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.mapbox.android.core.location.LocationEngine
88
import com.mapbox.annotation.module.MapboxModuleType
99
import com.mapbox.common.MapboxSDKCommon
1010
import com.mapbox.common.module.provider.MapboxModuleProvider
11+
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
1112
import com.mapbox.navigation.base.TimeFormat
1213
import com.mapbox.navigation.base.formatter.DistanceFormatterOptions
1314
import com.mapbox.navigation.base.internal.extensions.inferDeviceLocale
@@ -66,7 +67,7 @@ import org.junit.Rule
6667
import java.io.File
6768
import java.util.Locale
6869

69-
@OptIn(ExperimentalCoroutinesApi::class)
70+
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalPreviewMapboxNavigationAPI::class)
7071
internal open class MapboxNavigationBaseTest {
7172

7273
@get:Rule

libnavigation-core/src/test/java/com/mapbox/navigation/core/routerefresh/RouteRefreshControllerTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class RouteRefreshControllerTest {
2929
private val stateHolder = mockk<RouteRefreshStateHolder>(relaxed = true)
3030
private val refreshObserversManager = mockk<RefreshObserversManager>(relaxed = true)
3131
private val resultProcessor = mockk<RouteRefresherResultProcessor>(relaxed = true)
32-
private val job = mockk<Job>()
32+
private val job = mockk<Job>(relaxed = true)
3333
private val sut = RouteRefreshController(
3434
job,
3535
plannedRouteRefreshController,

libnavigation-core/src/test/java/com/mapbox/navigation/core/routerefresh/RouteRefreshOnDemandIntegrationTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.mapbox.navigation.core.routerefresh
22

3+
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
34
import kotlinx.coroutines.ExperimentalCoroutinesApi
45
import org.junit.Assert.assertEquals
56
import org.junit.Test
67

7-
@OptIn(ExperimentalCoroutinesApi::class)
8+
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalPreviewMapboxNavigationAPI::class)
89
internal class RouteRefreshOnDemandIntegrationTest : RouteRefreshIntegrationTest() {
910

1011
@Test

0 commit comments

Comments
 (0)