EFA: Parse multiple <itdMessage> after <itdDepartureMonitorRequest> and <itdTripRequest>.

This commit is contained in:
Andreas Schildbach 2016-11-20 16:36:23 +01:00
parent 1587f7fa9f
commit 6df550ea80

View file

@ -1468,8 +1468,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
final QueryDeparturesResult r = new QueryDeparturesResult(header); final QueryDeparturesResult r = new QueryDeparturesResult(header);
XmlPullUtil.enter(pp, "itdDepartureMonitorRequest"); XmlPullUtil.enter(pp, "itdDepartureMonitorRequest");
XmlPullUtil.optSkipMultiple(pp, "itdMessage");
XmlPullUtil.optSkip(pp, "itdMessage");
final String nameState = processItdOdv(pp, "dm", new ProcessItdOdvCallback() { final String nameState = processItdOdv(pp, "dm", new ProcessItdOdvCallback() {
@Override @Override
@ -2181,7 +2180,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
final String requestId = XmlPullUtil.attr(pp, "requestID"); final String requestId = XmlPullUtil.attr(pp, "requestID");
XmlPullUtil.enter(pp, "itdTripRequest"); XmlPullUtil.enter(pp, "itdTripRequest");
if (XmlPullUtil.test(pp, "itdMessage")) { while (XmlPullUtil.test(pp, "itdMessage")) {
final int code = XmlPullUtil.intAttr(pp, "code"); final int code = XmlPullUtil.intAttr(pp, "code");
if (code == -4000) // no trips if (code == -4000) // no trips
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);