EFA: Handle missing message code when querying for locations via JSON.

This commit is contained in:
Andreas Schildbach 2016-01-06 19:10:34 +01:00
parent d12b1abd03
commit 35c82481b5

View file

@ -285,14 +285,17 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
} }
else else
{ {
final JSONArray messages = stopFinder.getJSONArray("message"); final JSONArray messages = stopFinder.optJSONArray("message");
for (int i = 0; i < messages.length(); i++) if (messages != null)
{ {
final JSONObject message = messages.optJSONObject(i); for (int i = 0; i < messages.length(); i++)
final String messageName = message.getString("name"); {
final String messageValue = Strings.emptyToNull(message.getString("value")); final JSONObject message = messages.optJSONObject(i);
if ("code".equals(messageName) && !"-8011".equals(messageValue)) final String messageName = message.getString("name");
return new SuggestLocationsResult(header, SuggestLocationsResult.Status.SERVICE_DOWN); final String messageValue = Strings.emptyToNull(message.getString("value"));
if ("code".equals(messageName) && !"-8011".equals(messageValue))
return new SuggestLocationsResult(header, SuggestLocationsResult.Status.SERVICE_DOWN);
}
} }
final JSONObject points = stopFinder.optJSONObject("points"); final JSONObject points = stopFinder.optJSONObject("points");