From d37af7e32c5df90c0f9f698a50263f8928dd750d Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sat, 11 Aug 2012 22:17:09 +0200 Subject: [PATCH] parse intermediate stop arrival and departure times for efa based providers --- .../schildbach/pte/AbstractEfaProvider.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index d12813b9..9cea1ebc 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -2042,21 +2042,33 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider while (XmlPullUtil.test(pp, "itdPoint")) { final Location stopLocation = processItdPointAttributes(pp); + final String stopPosition; if (!suppressPositions) stopPosition = normalizePlatform(pp.getAttributeValue(null, "platform"), pp.getAttributeValue(null, "platformName")); else stopPosition = null; + XmlPullUtil.enter(pp, "itdPoint"); XmlPullUtil.require(pp, "itdDateTime"); - final boolean success1 = processItdDateTime(pp, time); - final boolean success2 = XmlPullUtil.test(pp, "itdDateTime") ? processItdDateTime(pp, time) : false; - final Date stopTime = time.getTime(); // TODO arrival/departure, planned/predicted? - XmlPullUtil.exit(pp, "itdPoint"); - if (success1 || success2) - intermediateStops.add(new Stop(stopLocation, null, null, stopTime, stopPosition)); + final Date stopArrivalTime; + if (processItdDateTime(pp, time)) + stopArrivalTime = time.getTime(); + else + stopArrivalTime = null; + + final Date stopDepartureTime; + if (XmlPullUtil.test(pp, "itdDateTime") && processItdDateTime(pp, time)) + stopDepartureTime = time.getTime(); + else + stopDepartureTime = null; + + intermediateStops.add(new Stop(stopLocation, stopArrivalTime, stopPosition, stopDepartureTime, stopPosition)); + // TODO planned/predicted? + + XmlPullUtil.exit(pp, "itdPoint"); } XmlPullUtil.exit(pp, "itdStopSeq");