h2g accessibility

This commit is contained in:
Andreas Schildbach 2012-08-17 22:38:23 +02:00
parent 477671236b
commit f087dec27c

View file

@ -51,7 +51,6 @@ import org.xmlpull.v1.XmlPullParserFactory;
import de.schildbach.pte.dto.Connection; import de.schildbach.pte.dto.Connection;
import de.schildbach.pte.dto.Departure; import de.schildbach.pte.dto.Departure;
import de.schildbach.pte.dto.Line; import de.schildbach.pte.dto.Line;
import de.schildbach.pte.dto.Line.Attr;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult; import de.schildbach.pte.dto.NearbyStationsResult;
@ -782,7 +781,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
protected final void appendConnectionsQueryUri(final StringBuilder uri, final Location from, final Location via, final Location to, protected final void appendConnectionsQueryUri(final StringBuilder uri, final Location from, final Location via, final Location to,
final Date date, final boolean dep, final String products, final Set<Option> options) final Date date, final boolean dep, final String products, final Accessibility accessibility, final Set<Option> options)
{ {
uri.append("?start=Suchen"); uri.append("?start=Suchen");
@ -837,6 +836,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
uri.append("&REQ0JourneyProduct_prod_list_1=").append(productsStr); uri.append("&REQ0JourneyProduct_prod_list_1=").append(productsStr);
if (accessibility != null && accessibility != Accessibility.NEUTRAL)
{
if (accessibility == Accessibility.LIMITED)
uri.append("&REQ0AddParamBaimprofile=1");
else if (accessibility == Accessibility.BARRIER_FREE)
uri.append("&REQ0AddParamBaimprofile=0");
}
if (options != null && options.contains(Option.BIKE)) if (options != null && options.contains(Option.BIKE))
uri.append("&REQ0JourneyProduct_opt3=1"); uri.append("&REQ0JourneyProduct_opt3=1");
} }
@ -1487,7 +1494,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
final StringBuilder uri = new StringBuilder(apiUri); final StringBuilder uri = new StringBuilder(apiUri);
appendConnectionsQueryUri(uri, from, via, to, date, dep, products, options); appendConnectionsQueryUri(uri, from, via, to, date, dep, products, accessibility, options);
appendCustomConnectionsQueryBinaryUri(uri); appendCustomConnectionsQueryBinaryUri(uri);
return queryConnectionsBinary(uri.toString(), from, via, to); return queryConnectionsBinary(uri.toString(), from, via, to);
@ -1736,7 +1743,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final int partAttrIndex = is.readShortReverse(); final int partAttrIndex = is.readShortReverse();
/* final String[] comments = */comments.read(is); final List<Line.Attr> lineAttrs = new ArrayList<Line.Attr>();
for (final String comment : comments.read(is))
{
if (comment.startsWith("bf "))
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
}
is.reset(); is.reset();
is.skipBytes(attrsOffset + partAttrIndex * 4); is.skipBytes(attrsOffset + partAttrIndex * 4);
@ -1847,7 +1859,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
lineProduct = intToProduct(lineClass); lineProduct = intToProduct(lineClass);
else else
lineProduct = normalizeType(lineCategory); lineProduct = normalizeType(lineCategory);
final Line line = newLine(lineProduct, normalizeLineName(lineName));
final Line line = newLine(lineProduct, normalizeLineName(lineName), lineAttrs.toArray(new Line.Attr[0]));
final Location direction = directionStr != null ? new Location(LocationType.ANY, 0, null, directionStr) : null; final Location direction = directionStr != null ? new Location(LocationType.ANY, 0, null, directionStr) : null;
part = new Connection.Trip(line, direction, plannedDepartureTime != 0 ? new Date(plannedDepartureTime) : null, part = new Connection.Trip(line, direction, plannedDepartureTime != 0 ? new Date(plannedDepartureTime) : null,
@ -2694,11 +2707,11 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (normalizedType == 0) if (normalizedType == 0)
throw new IllegalStateException("cannot normalize type '" + type + "' line '" + line + "'"); throw new IllegalStateException("cannot normalize type '" + type + "' line '" + line + "'");
final Attr[] attrs; final Line.Attr[] attrs;
if (wheelchairAccess) if (wheelchairAccess)
attrs = new Attr[] { Line.Attr.WHEEL_CHAIR_ACCESS }; attrs = new Line.Attr[] { Line.Attr.WHEEL_CHAIR_ACCESS };
else else
attrs = new Attr[0]; attrs = new Line.Attr[0];
if (line != null) if (line != null)
{ {