Fix parse error for a no-trips case (EFA).

This commit is contained in:
Andreas Schildbach 2014-06-22 14:08:04 +02:00
parent f96c5df431
commit 133c8c5525

View file

@ -2435,10 +2435,14 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{ {
XmlPullUtil.enter(pp, "itdItinerary"); XmlPullUtil.enter(pp, "itdItinerary");
final Calendar time = new GregorianCalendar(timeZone()); XmlPullUtil.optSkip(pp, "itdLegTTs");
if (XmlPullUtil.test(pp, "itdRouteList"))
{
XmlPullUtil.enter(pp, "itdRouteList"); XmlPullUtil.enter(pp, "itdRouteList");
final Calendar time = new GregorianCalendar(timeZone());
while (XmlPullUtil.test(pp, "itdRoute")) while (XmlPullUtil.test(pp, "itdRoute"))
{ {
final String id = useRouteIndexAsTripId ? pp.getAttributeValue(null, "routeIndex") + "-" final String id = useRouteIndexAsTripId ? pp.getAttributeValue(null, "routeIndex") + "-"
@ -2538,8 +2542,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Trip.Individual lastIndividual = (Trip.Individual) legs.remove(legs.size() - 1); final Trip.Individual lastIndividual = (Trip.Individual) legs.remove(legs.size() - 1);
if (path != null && lastIndividual.path != null) if (path != null && lastIndividual.path != null)
path.addAll(0, lastIndividual.path); path.addAll(0, lastIndividual.path);
legs.add(new Trip.Individual(type, lastIndividual.departure, lastIndividual.departureTime, arrivalLocation, arrivalTime, legs.add(new Trip.Individual(type, lastIndividual.departure, lastIndividual.departureTime, arrivalLocation,
path, distance)); arrivalTime, path, distance));
} }
else else
{ {
@ -2757,8 +2761,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS); lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
final Line line = new Line(lineId, lineLabel, lineStyle(divaNetwork, lineLabel), lineAttrs); final Line line = new Line(lineId, lineLabel, lineStyle(divaNetwork, lineLabel), lineAttrs);
final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime : departureTime, final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime
departureTime != null ? departureTime : null, departurePosition, null); : departureTime, departureTime != null ? departureTime : null, departurePosition, null);
final Stop arrival = new Stop(arrivalLocation, false, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime, final Stop arrival = new Stop(arrivalLocation, false, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
arrivalTime != null ? arrivalTime : null, arrivalPosition, null); arrivalTime != null ? arrivalTime : null, arrivalPosition, null);
@ -2829,13 +2833,15 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "itdRoute"); XmlPullUtil.exit(pp, "itdRoute");
final Trip trip = new Trip(id, firstDepartureLocation, lastArrivalLocation, legs, fares.isEmpty() ? null : fares, null, numChanges); final Trip trip = new Trip(id, firstDepartureLocation, lastArrivalLocation, legs, fares.isEmpty() ? null : fares, null,
numChanges);
if (!cancelled) if (!cancelled)
trips.add(trip); trips.add(trip);
} }
XmlPullUtil.exit(pp, "itdRouteList"); XmlPullUtil.exit(pp, "itdRouteList");
}
XmlPullUtil.exit(pp, "itdItinerary"); XmlPullUtil.exit(pp, "itdItinerary");
} }
else else