fixed parsing of intermediates

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@647 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-05-16 11:23:52 +00:00
parent 8754842cb3
commit 596e67c3d1

View file

@ -767,6 +767,8 @@ public abstract class AbstractHafasProvider implements NetworkProvider
while (XmlPullUtil.test(pp, "StAttrList")) while (XmlPullUtil.test(pp, "StAttrList"))
XmlPullUtil.next(pp); XmlPullUtil.next(pp);
final Location location = parseLocation(pp); final Location location = parseLocation(pp);
if (location.id != sectionDeparture.id)
{
if (XmlPullUtil.test(pp, "Arr")) if (XmlPullUtil.test(pp, "Arr"))
XmlPullUtil.next(pp); XmlPullUtil.next(pp);
if (XmlPullUtil.test(pp, "Dep")) if (XmlPullUtil.test(pp, "Dep"))
@ -780,6 +782,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
intermediateStops.add(new Stop(location, position, time.getTime())); intermediateStops.add(new Stop(location, position, time.getTime()));
} }
}
XmlPullUtil.exit(pp, "BasicStop"); XmlPullUtil.exit(pp, "BasicStop");
} }
@ -825,17 +828,12 @@ public abstract class AbstractHafasProvider implements NetworkProvider
XmlPullUtil.exit(pp, "BasicStop"); XmlPullUtil.exit(pp, "BasicStop");
XmlPullUtil.exit(pp, "Arrival"); XmlPullUtil.exit(pp, "Arrival");
// remove first and last, because they are not intermediate // remove last intermediate
final int size = intermediateStops.size(); final int size = intermediateStops.size();
if (size >= 2) if (size >= 1)
{
if (intermediateStops.get(size - 1).location.id == sectionArrival.id) if (intermediateStops.get(size - 1).location.id == sectionArrival.id)
intermediateStops.remove(size - 1); intermediateStops.remove(size - 1);
if (intermediateStops.get(0).location.id == sectionDeparture.id)
intermediateStops.remove(0);
}
XmlPullUtil.exit(pp, "ConSection"); XmlPullUtil.exit(pp, "ConSection");
if (min == 0 || line != null) if (min == 0 || line != null)