Migrate Sweden to binary connections query

This commit is contained in:
Andreas Schildbach 2013-07-09 20:21:20 +02:00
parent f65aa7ea57
commit efa52d7f3d
2 changed files with 37 additions and 5 deletions

View file

@ -90,6 +90,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
private final Charset xmlMlcResEncoding;
private boolean dominantPlanStopTime = false;
private boolean canDoEquivs = true;
private boolean useIso8601 = false;
private static class Context implements QueryTripsContext
{
@ -185,6 +186,11 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
this.canDoEquivs = canDoEquivs;
}
protected void setUseIso8601(final boolean useIso8601)
{
this.useIso8601 = useIso8601;
}
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("CET");
@ -899,11 +905,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final Calendar c = new GregorianCalendar(timeZone());
c.setTime(date);
uri.append("&REQ0JourneyDate=");
uri.append(String.format(Locale.ENGLISH, "%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1,
c.get(Calendar.YEAR) - 2000));
uri.append("&REQ0JourneyTime=");
uri.append(String.format(Locale.ENGLISH, "%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
final String dateStr = useIso8601 ? String.format(Locale.ENGLISH, "%04d-%02d-%02d", c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1,
c.get(Calendar.DAY_OF_MONTH)) : String.format(Locale.ENGLISH, "%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH),
c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000);
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(dateStr));
final String timeStr = String.format(Locale.ENGLISH, "%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE));
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(timeStr));
final StringBuilder productsStr = new StringBuilder(numProductBits);
if (products != null)

View file

@ -19,7 +19,9 @@ package de.schildbach.pte;
import java.io.IOException;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -29,6 +31,8 @@ import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
/**
* @author Andreas Schildbach
@ -47,6 +51,7 @@ public class SeProvider extends AbstractHafasProvider
setClientType("ANDROID");
setCanDoEquivs(false);
setUseIso8601(true);
}
public NetworkId id()
@ -193,6 +198,26 @@ public class SeProvider extends AbstractHafasProvider
return jsonGetStops(uri.toString());
}
@Override
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override
public Collection<Product> defaultProducts()
{