diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index 4607fc63..b21de755 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -285,6 +285,16 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider } else { + final JSONArray messages = stopFinder.getJSONArray("message"); + for (int i = 0; i < messages.length(); i++) + { + final JSONObject message = messages.optJSONObject(i); + final String messageName = message.getString("name"); + 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"); if (points != null) { diff --git a/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java index 54125fa3..58dd3739 100644 --- a/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java @@ -83,6 +83,13 @@ public class SvvProviderLiveTest extends AbstractProviderLiveTest assertThat(result.getLocations(), hasItem(new Location(LocationType.STATION, "60650458"))); } + @Test + public void suggestLocationsAddress() throws Exception + { + final SuggestLocationsResult result = suggestLocations("Kaigasse 10"); + print(result); + } + @Test public void suggestLocationsCoverage() throws Exception {