Skip to content

Commit cfc3c7f

Browse files
authored
Add interceptor and event listener support for NavigationRoute (#1734)
1 parent dca52fa commit cfc3c7f

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

libandroid-navigation/src/main/java/com/mapbox/services/android/navigation/v5/navigation/NavigationRoute.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
import java.util.Locale;
2424

25+
import okhttp3.EventListener;
26+
import okhttp3.Interceptor;
2527
import retrofit2.Call;
2628
import retrofit2.Callback;
2729
import retrofit2.Response;
@@ -151,7 +153,11 @@ public static final class Builder {
151153
* Private constructor for initializing the raw MapboxDirections.Builder
152154
*/
153155
private Builder() {
154-
directionsBuilder = MapboxDirections.builder();
156+
this(MapboxDirections.builder());
157+
}
158+
159+
Builder(MapboxDirections.Builder directionsBuilder) {
160+
this.directionsBuilder = directionsBuilder;
155161
}
156162

157163
/**
@@ -548,6 +554,28 @@ public Builder addWaypointTargets(@Nullable Point... waypointTargets) {
548554
return this;
549555
}
550556

557+
/**
558+
* Adds an optional interceptor to set in the OkHttp client.
559+
*
560+
* @param interceptor to set for OkHttp
561+
* @return this builder for chaining options together
562+
*/
563+
public Builder interceptor(Interceptor interceptor) {
564+
directionsBuilder.interceptor(interceptor);
565+
return this;
566+
}
567+
568+
/**
569+
* Adds an optional event listener to set in the OkHttp client.
570+
*
571+
* @param eventListener to set for OkHttp
572+
* @return this builder for chaining options together
573+
*/
574+
public Builder eventListener(EventListener eventListener) {
575+
directionsBuilder.eventListener(eventListener);
576+
return this;
577+
}
578+
551579
/**
552580
* Optionally create a {@link Builder} based on all variables
553581
* from given {@link RouteOptions}.

libandroid-navigation/src/test/java/com/mapbox/services/android/navigation/v5/navigation/NavigationRouteTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import java.util.Locale;
2525

2626
import edu.emory.mathcs.backport.java.util.Collections;
27+
import okhttp3.EventListener;
28+
import okhttp3.Interceptor;
2729
import retrofit2.Call;
2830
import retrofit2.Callback;
2931
import retrofit2.Response;
@@ -226,6 +228,28 @@ public void cancelCall_doesNotCancelExecutedCall() {
226228
verify(routeCall, times(0)).cancel();
227229
}
228230

231+
@Test
232+
public void builderInterceptor_setsMapboxDirections() {
233+
MapboxDirections.Builder mapboxDirectionsBuilder = mock(MapboxDirections.Builder.class);
234+
NavigationRoute.Builder builder = new NavigationRoute.Builder(mapboxDirectionsBuilder);
235+
EventListener eventListener = mock(EventListener.class);
236+
237+
builder.eventListener(eventListener);
238+
239+
verify(mapboxDirectionsBuilder).eventListener(eventListener);
240+
}
241+
242+
@Test
243+
public void builderEventListener_setsMapboxDirections() {
244+
MapboxDirections.Builder mapboxDirectionsBuilder = mock(MapboxDirections.Builder.class);
245+
NavigationRoute.Builder builder = new NavigationRoute.Builder(mapboxDirectionsBuilder);
246+
Interceptor interceptor = mock(Interceptor.class);
247+
248+
builder.interceptor(interceptor);
249+
250+
verify(mapboxDirectionsBuilder).interceptor(interceptor);
251+
}
252+
229253
@Test
230254
public void getRoute_routeRetrievalEventSent() {
231255
MapboxDirections mapboxDirections = mock(MapboxDirections.class);

0 commit comments

Comments
 (0)