Parse empty <itdItinerary>

This commit is contained in:
Andreas Schildbach 2014-01-04 11:01:44 +01:00
parent 3fa417cbe8
commit 0be5a62a09

View file

@ -2420,17 +2420,21 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.enter(pp, "itdTripOptions");
XmlPullUtil.exit(pp, "itdTripOptions");
final List<Trip> trips = new ArrayList<Trip>();
XmlPullUtil.require(pp, "itdItinerary");
if (!pp.isEmptyElementTag())
{
XmlPullUtil.enter(pp, "itdItinerary");
final Calendar time = new GregorianCalendar(timeZone());
final List<Trip> trips = new ArrayList<Trip>();
XmlPullUtil.enter(pp, "itdRouteList");
while (XmlPullUtil.test(pp, "itdRoute"))
{
final String id = useRouteIndexAsTripId ? pp.getAttributeValue(null, "routeIndex") + "-" + pp.getAttributeValue(null, "routeTripIndex")
: null;
final String id = useRouteIndexAsTripId ? pp.getAttributeValue(null, "routeIndex") + "-"
+ pp.getAttributeValue(null, "routeTripIndex") : null;
final int numChanges = XmlPullUtil.intAttr(pp, "changes");
XmlPullUtil.enter(pp, "itdRoute");
@ -2545,7 +2549,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{
final String destinationName = normalizeLocationName(pp.getAttributeValue(null, "destination"));
final String destinationIdStr = pp.getAttributeValue(null, "destID");
final int destinationId = (destinationIdStr != null && destinationIdStr.length() > 0) ? Integer.parseInt(destinationIdStr) : 0;
final int destinationId = (destinationIdStr != null && destinationIdStr.length() > 0) ? Integer.parseInt(destinationIdStr)
: 0;
final Location destination = new Location(destinationId > 0 ? LocationType.STATION : LocationType.ANY,
destinationId > 0 ? destinationId : 0, null, destinationName);
final String lineLabel;
@ -2823,6 +2828,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "itdRouteList");
XmlPullUtil.exit(pp, "itdItinerary");
}
else
{
XmlPullUtil.next(pp);
}
return new QueryTripsResult(header, uri, from, via, to, new Context(commandLink((String) context, requestId)), trips);
}