From 1cd17a18149790a6894e3e994d3ea96014c07d4b Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 27 Jun 2016 18:15:06 +0200 Subject: [PATCH] EFA: Handle missing destinations in departure monitor, again. --- .../src/de/schildbach/pte/AbstractEfaProvider.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index f72175c7..ca240b8b 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1606,10 +1606,16 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider while (XmlPullUtil.test(pp, "itdServingLine")) { final String assignedStopId = XmlPullUtil.optAttr(pp, "assignedStopID", null); - final String destinationName = normalizeLocationName(XmlPullUtil.attr(pp, "direction")); - final String destinationId = XmlPullUtil.optAttr(pp, "destID", null); - final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId, null, - destinationName); + final String destinationName = normalizeLocationName(XmlPullUtil.optAttr(pp, "direction", null)); + final String destinationIdStr = XmlPullUtil.optAttr(pp, "destID", null); + final String destinationId = !"-1".equals(destinationIdStr) ? destinationIdStr : null; + final Location destination; + if (destinationId != null || destinationName != null) + destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId, null, + destinationName); + else + destination = null; + final LineDestination line = new LineDestination(processItdServingLine(pp), destination); StationDepartures assignedStationDepartures;