AbstractHafasMobileProvider: Require API version 1.11 or higher, and advance all API versions to 1.13.

This commit is contained in:
Andreas Schildbach 2018-07-26 16:27:16 +02:00
parent 0bcc9ce640
commit d5e8c3c422
11 changed files with 13 additions and 15 deletions

View file

@ -17,6 +17,7 @@
package de.schildbach.pte;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
@ -84,6 +85,7 @@ public abstract class AbstractHafasMobileProvider extends AbstractHafasProvider
}
protected AbstractHafasMobileProvider setApiVersion(final String apiVersion) {
checkArgument(apiVersion.compareToIgnoreCase("1.11") >= 0, "apiVersion must be 1.11 or higher");
this.apiVersion = apiVersion;
return this;
}
@ -231,9 +233,6 @@ public abstract class AbstractHafasMobileProvider extends AbstractHafasProvider
if ("FAIL".equals(err) && "HCI Service: request failed".equals(errTxt))
return new QueryDeparturesResult(header, QueryDeparturesResult.Status.SERVICE_DOWN);
throw new RuntimeException(err + " " + errTxt);
} else if ("1.10".equals(apiVersion) && svcRes.toString().length() == 170) {
// horrible hack, because API version 1.10 doesn't signal invalid stations via error
return new QueryDeparturesResult(header, QueryDeparturesResult.Status.INVALID_STATION);
}
final JSONObject res = svcRes.getJSONObject("res");
@ -400,7 +399,6 @@ public abstract class AbstractHafasMobileProvider extends AbstractHafasProvider
c.setTime(time);
final CharSequence outDate = jsonDate(c);
final CharSequence outTime = jsonTime(c);
final CharSequence outFrwdKey = "1.11".equals(apiVersion) ? "outFrwd" : "frwd";
final CharSequence outFrwd = Boolean.toString(dep);
final CharSequence jnyFltr = productsString(products);
final CharSequence jsonContext = moreContext != null ? "\"ctxScr\":" + JSONObject.quote(moreContext) + "," : "";
@ -411,7 +409,7 @@ public abstract class AbstractHafasMobileProvider extends AbstractHafasProvider
+ (via != null ? "\"viaLocL\":[{\"loc\":" + jsonLocation(via) + "}]," : "") //
+ "\"outDate\":\"" + outDate + "\"," //
+ "\"outTime\":\"" + outTime + "\"," //
+ "\"" + outFrwdKey + "\":" + outFrwd + "," //
+ "\"outFrwd\":" + outFrwd + "," //
+ "\"jnyFltrL\":[{\"value\":\"" + jnyFltr + "\",\"mode\":\"BIT\",\"type\":\"PROD\"}]," //
+ "\"gisFltrL\":[{\"mode\":\"FB\",\"profile\":{\"type\":\"F\",\"linDistRouting\":false,\"maxdist\":2000},\"type\":\"P\"}]," //
+ "\"getPolyline\":false,\"getPasslist\":true,\"getIST\":false,\"getEco\":false,\"extChgTime\":-1}", //

View file

@ -45,7 +45,7 @@ public final class BvgProvider extends AbstractHafasMobileProvider {
public BvgProvider(final String jsonApiAuthorization) {
super(NetworkId.BVG, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"BVG\"}");
setApiAuthorization(jsonApiAuthorization);
setStyles(STYLES);

View file

@ -36,7 +36,7 @@ public class OoevvProvider extends AbstractHafasMobileProvider {
public OoevvProvider(final String apiAuthorization) {
super(NetworkId.OOEVV, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_ooevv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
httpClient.setSslAcceptAllHostnames(true);

View file

@ -42,7 +42,7 @@ public class ShProvider extends AbstractHafasMobileProvider {
public ShProvider(final String apiAuthorization) {
super(NetworkId.SH, API_BASE, PRODUCTS_MAP);
setApiVersion("1.10");
setApiVersion("1.13");
setApiClient("{\"id\":\"NAHSH\"}");
setApiAuthorization(apiAuthorization);
setStyles(STYLES);

View file

@ -39,7 +39,7 @@ public class SvvProvider extends AbstractHafasMobileProvider {
public SvvProvider(final String apiAuthorization) {
super(NetworkId.SVV, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_svv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
setStyles(STYLES);

View file

@ -39,7 +39,7 @@ public class VaoProvider extends AbstractHafasMobileProvider {
public VaoProvider(final String apiAuthorization) {
super(NetworkId.VAO, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
setStyles(STYLES);

View file

@ -47,7 +47,7 @@ public class VbnProvider extends AbstractHafasMobileProvider {
public VbnProvider(final String apiAuthorization) {
super(NetworkId.VBN, API_BASE, PRODUCTS_MAP);
setApiVersion("1.10");
setApiVersion("1.13");
setApiClient("{\"id\":\"VBN\"}");
setApiAuthorization(apiAuthorization);
setStyles(STYLES);

View file

@ -36,7 +36,7 @@ public class VmobilProvider extends AbstractHafasMobileProvider {
public VmobilProvider(final String apiAuthorization) {
super(NetworkId.VMOBIL, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
}

View file

@ -35,7 +35,7 @@ public class VmtProvider extends AbstractHafasMobileProvider {
public VmtProvider(final String jsonApiAuthorization) {
super(NetworkId.VMT, API_BASE, PRODUCTS_MAP);
setApiVersion("1.10");
setApiVersion("1.13");
setApiClient("{\"name\":\"VMT\"}");
setApiAuthorization(jsonApiAuthorization);
}

View file

@ -39,7 +39,7 @@ public class VorProvider extends AbstractHafasMobileProvider {
public VorProvider(final String apiAuthorization) {
super(NetworkId.VOR, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_anachb\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
setStyles(STYLES);

View file

@ -36,7 +36,7 @@ public class VvtProvider extends AbstractHafasMobileProvider {
public VvtProvider(final String apiAuthorization) {
super(NetworkId.VVT, API_BASE, PRODUCTS_MAP);
setApiVersion("1.11");
setApiVersion("1.13");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvt\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization);
}