From 8ab470d594709c59c021c288101b5051b79e7b96 Mon Sep 17 00:00:00 2001 From: Kyle Madsen <> Date: Thu, 2 Jan 2020 15:01:24 -0800 Subject: [PATCH] Add network interceptor to directions --- .../api/directions/v5/MapboxDirections.java | 15 ++++++++++++ .../directions/v5/MapboxDirectionsTest.java | 24 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/services-directions/src/main/java/com/mapbox/api/directions/v5/MapboxDirections.java b/services-directions/src/main/java/com/mapbox/api/directions/v5/MapboxDirections.java index a08b90fcc..dd9b9ca07 100644 --- a/services-directions/src/main/java/com/mapbox/api/directions/v5/MapboxDirections.java +++ b/services-directions/src/main/java/com/mapbox/api/directions/v5/MapboxDirections.java @@ -205,6 +205,10 @@ protected synchronized OkHttpClient getOkHttpClient() { if (interceptor != null) { httpClient.addInterceptor(interceptor); } + Interceptor networkInterceptor = networkInterceptor(); + if (networkInterceptor != null) { + httpClient.addNetworkInterceptor(networkInterceptor); + } EventListener eventListener = eventListener(); if (eventListener != null) { httpClient.eventListener(eventListener); @@ -329,6 +333,9 @@ private static String formatWaypointTargets(Point[] waypointTargets) { @Nullable abstract Interceptor interceptor(); + @Nullable + abstract Interceptor networkInterceptor(); + @Nullable abstract EventListener eventListener(); @@ -754,6 +761,14 @@ public Builder radiuses(@FloatRange(from = 0) double... radiuses) { */ public abstract Builder interceptor(Interceptor interceptor); + /** + * Adds an optional network interceptor to set in the OkHttp client. + * + * @param interceptor to set for OkHttp + * @return this builder for chaining options together + */ + public abstract Builder networkInterceptor(Interceptor interceptor); + /** * Adds an optional event listener to set in the OkHttp client. * diff --git a/services-directions/src/test/java/com/mapbox/api/directions/v5/MapboxDirectionsTest.java b/services-directions/src/test/java/com/mapbox/api/directions/v5/MapboxDirectionsTest.java index 14309b139..de6cdd345 100644 --- a/services-directions/src/test/java/com/mapbox/api/directions/v5/MapboxDirectionsTest.java +++ b/services-directions/src/test/java/com/mapbox/api/directions/v5/MapboxDirectionsTest.java @@ -839,6 +839,30 @@ public okhttp3.Response intercept(Chain chain) throws IOException { assertEquals(interceptor, mapboxDirections.interceptor()); } + @Test + public void testWithNetworkInterceptor() throws Exception { + Interceptor interceptor = new Interceptor() { + @Override + public okhttp3.Response intercept(Chain chain) throws IOException { + return null; + } + }; + MapboxDirections mapboxDirections = MapboxDirections.builder() + .profile(PROFILE_CYCLING) + .origin(Point.fromLngLat(-122.42,37.78)) + .destination(Point.fromLngLat(-77.03,38.91)) + .steps(true) + .voiceInstructions(true) + .voiceUnits(DirectionsCriteria.IMPERIAL) + .addWaypointNames("Home", "Work") + .accessToken(ACCESS_TOKEN) + .baseUrl(mockUrl.toString()) + .networkInterceptor(interceptor) + .build(); + + assertEquals(interceptor, mapboxDirections.networkInterceptor()); + } + @Test public void testWithEventListener() throws Exception { EventListener eventListener = new EventListener() {