Skip to content

Commit 092f0cb

Browse files
author
Guardiola31337
committed
return the actual error coming back from nn when fetching an offline route fails
1 parent 2fe22ae commit 092f0cb

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import android.support.annotation.NonNull;
55
import android.support.annotation.Nullable;
66

7-
import com.google.gson.Gson;
87
import com.mapbox.api.directions.v5.models.DirectionsResponse;
98
import com.mapbox.api.directions.v5.models.DirectionsRoute;
109
import com.mapbox.core.exceptions.ServicesException;
@@ -14,7 +13,6 @@
1413
import java.util.List;
1514

1615
import okhttp3.HttpUrl;
17-
import timber.log.Timber;
1816

1917
/**
2018
* The {@link OfflineRoute} class wraps the {@link NavigationRoute} class with parameters which
@@ -73,10 +71,10 @@ public String buildUrl() {
7371
@Nullable
7472
DirectionsRoute retrieveOfflineRoute(@NonNull RouterResult response) {
7573
boolean success = response.getSuccess();
76-
String jsonResponse = response.getJson();
77-
if (checkOfflineRoute(success, jsonResponse)) {
74+
if (!checkOfflineRoute(success)) {
7875
return null;
7976
}
77+
String jsonResponse = response.getJson();
8078
return obtainRouteFor(jsonResponse);
8179
}
8280

@@ -155,11 +153,8 @@ private String buildOfflineUrl(String onlineUrl) {
155153
return offlineUrlBuilder.build().toString();
156154
}
157155

158-
private boolean checkOfflineRoute(boolean isSuccess, String json) {
159-
if (!isSuccess) {
160-
Gson gson = new Gson();
161-
OfflineRouteError error = gson.fromJson(json, OfflineRouteError.class);
162-
Timber.e("Error occurred fetching offline route: %s - Code: %d", error.getError(), error.getErrorCode());
156+
private boolean checkOfflineRoute(boolean isSuccess) {
157+
if (isSuccess) {
163158
return true;
164159
}
165160
return false;

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

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
package com.mapbox.services.android.navigation.v5.navigation;
22

33
import android.os.AsyncTask;
4+
import android.support.annotation.NonNull;
45

6+
import com.google.gson.Gson;
57
import com.mapbox.api.directions.v5.models.DirectionsRoute;
68
import com.mapbox.navigator.Navigator;
79
import com.mapbox.navigator.RouterResult;
810

11+
import timber.log.Timber;
12+
913
class OfflineRouteRetrievalTask extends AsyncTask<OfflineRoute, Void, DirectionsRoute> {
1014
private static final int FIRST_ROUTE = 0;
1115
private final Navigator navigator;
1216
private final OnOfflineRouteFoundCallback callback;
17+
private RouterResult routerResult;
1318

1419
OfflineRouteRetrievalTask(Navigator navigator, OnOfflineRouteFoundCallback callback) {
1520
this.navigator = navigator;
@@ -18,7 +23,6 @@ class OfflineRouteRetrievalTask extends AsyncTask<OfflineRoute, Void, Directions
1823

1924
@Override
2025
protected DirectionsRoute doInBackground(OfflineRoute... offlineRoutes) {
21-
RouterResult routerResult;
2226
String url = offlineRoutes[FIRST_ROUTE].buildUrl();
2327

2428
synchronized (navigator) {
@@ -33,8 +37,20 @@ protected void onPostExecute(DirectionsRoute offlineRoute) {
3337
if (offlineRoute != null) {
3438
callback.onRouteFound(offlineRoute);
3539
} else {
36-
OfflineError error = new OfflineError("Offline route was not found");
40+
String errorMessage = generateErrorMessage();
41+
OfflineError error = new OfflineError(errorMessage);
3742
callback.onError(error);
3843
}
3944
}
45+
46+
@NonNull
47+
private String generateErrorMessage() {
48+
String jsonResponse = routerResult.getJson();
49+
Gson gson = new Gson();
50+
OfflineRouteError routeError = gson.fromJson(jsonResponse, OfflineRouteError.class);
51+
String errorMessage = String.format("Error occurred fetching offline route: %s - Code: %d", routeError.getError(),
52+
routeError.getErrorCode());
53+
Timber.e(errorMessage);
54+
return errorMessage;
55+
}
4056
}

0 commit comments

Comments
 (0)