handle cancelled connections for efa based providers

This commit is contained in:
Andreas Schildbach 2013-03-12 15:35:20 +01:00
parent d62d61e53f
commit ae5109f036

View file

@ -2099,6 +2099,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
Location firstDepartureLocation = null; Location firstDepartureLocation = null;
Location lastArrivalLocation = null; Location lastArrivalLocation = null;
boolean cancelled = false;
while (XmlPullUtil.test(pp, "itdPartialRoute")) while (XmlPullUtil.test(pp, "itdPartialRoute"))
{ {
final int distance = XmlPullUtil.optIntAttr(pp, "distance", 0); final int distance = XmlPullUtil.optIntAttr(pp, "distance", 0);
@ -2238,6 +2240,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{ {
departureDelay = XmlPullUtil.optIntAttr(pp, "delayMinutes", 0); departureDelay = XmlPullUtil.optIntAttr(pp, "delayMinutes", 0);
arrivalDelay = XmlPullUtil.optIntAttr(pp, "delayMinutesArr", 0); arrivalDelay = XmlPullUtil.optIntAttr(pp, "delayMinutesArr", 0);
cancelled |= (departureDelay == -9999 || arrivalDelay == -9999);
XmlPullUtil.next(pp); XmlPullUtil.next(pp);
} }
else else
@ -2470,9 +2475,14 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.next(pp); XmlPullUtil.next(pp);
} }
} }
connections.add(new Connection(id, firstDepartureLocation, lastArrivalLocation, parts, fares.isEmpty() ? null : fares, null,
numChanges));
XmlPullUtil.exit(pp, "itdRoute"); XmlPullUtil.exit(pp, "itdRoute");
final Connection connection = new Connection(id, firstDepartureLocation, lastArrivalLocation, parts, fares.isEmpty() ? null : fares,
null, numChanges);
if (!cancelled)
connections.add(connection);
} }
XmlPullUtil.exit(pp, "itdRouteList"); XmlPullUtil.exit(pp, "itdRouteList");