From d5e8c3c422432c5ec98c4a78db827797cffe0abd Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 26 Jul 2018 16:27:16 +0200 Subject: [PATCH] AbstractHafasMobileProvider: Require API version 1.11 or higher, and advance all API versions to 1.13. --- .../de/schildbach/pte/AbstractHafasMobileProvider.java | 8 +++----- enabler/src/de/schildbach/pte/BvgProvider.java | 2 +- enabler/src/de/schildbach/pte/OoevvProvider.java | 2 +- enabler/src/de/schildbach/pte/ShProvider.java | 2 +- enabler/src/de/schildbach/pte/SvvProvider.java | 2 +- enabler/src/de/schildbach/pte/VaoProvider.java | 2 +- enabler/src/de/schildbach/pte/VbnProvider.java | 2 +- enabler/src/de/schildbach/pte/VmobilProvider.java | 2 +- enabler/src/de/schildbach/pte/VmtProvider.java | 2 +- enabler/src/de/schildbach/pte/VorProvider.java | 2 +- enabler/src/de/schildbach/pte/VvtProvider.java | 2 +- 11 files changed, 13 insertions(+), 15 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasMobileProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasMobileProvider.java index 634d116f..9303e1a2 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasMobileProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasMobileProvider.java @@ -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}", // diff --git a/enabler/src/de/schildbach/pte/BvgProvider.java b/enabler/src/de/schildbach/pte/BvgProvider.java index a34146d1..50ee785e 100644 --- a/enabler/src/de/schildbach/pte/BvgProvider.java +++ b/enabler/src/de/schildbach/pte/BvgProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/OoevvProvider.java b/enabler/src/de/schildbach/pte/OoevvProvider.java index cca2172f..5a1d1f0e 100644 --- a/enabler/src/de/schildbach/pte/OoevvProvider.java +++ b/enabler/src/de/schildbach/pte/OoevvProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/ShProvider.java b/enabler/src/de/schildbach/pte/ShProvider.java index 1d9e481f..8eb8833c 100644 --- a/enabler/src/de/schildbach/pte/ShProvider.java +++ b/enabler/src/de/schildbach/pte/ShProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/SvvProvider.java b/enabler/src/de/schildbach/pte/SvvProvider.java index c0bc000c..e820f1d2 100644 --- a/enabler/src/de/schildbach/pte/SvvProvider.java +++ b/enabler/src/de/schildbach/pte/SvvProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/VaoProvider.java b/enabler/src/de/schildbach/pte/VaoProvider.java index da62bff9..08f9fc34 100644 --- a/enabler/src/de/schildbach/pte/VaoProvider.java +++ b/enabler/src/de/schildbach/pte/VaoProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/VbnProvider.java b/enabler/src/de/schildbach/pte/VbnProvider.java index 0870c891..afa6db2d 100644 --- a/enabler/src/de/schildbach/pte/VbnProvider.java +++ b/enabler/src/de/schildbach/pte/VbnProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/VmobilProvider.java b/enabler/src/de/schildbach/pte/VmobilProvider.java index e26570de..fa8714b3 100644 --- a/enabler/src/de/schildbach/pte/VmobilProvider.java +++ b/enabler/src/de/schildbach/pte/VmobilProvider.java @@ -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); } diff --git a/enabler/src/de/schildbach/pte/VmtProvider.java b/enabler/src/de/schildbach/pte/VmtProvider.java index 9f2ecdc4..729ec49e 100644 --- a/enabler/src/de/schildbach/pte/VmtProvider.java +++ b/enabler/src/de/schildbach/pte/VmtProvider.java @@ -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); } diff --git a/enabler/src/de/schildbach/pte/VorProvider.java b/enabler/src/de/schildbach/pte/VorProvider.java index 140dcb4f..45136b91 100644 --- a/enabler/src/de/schildbach/pte/VorProvider.java +++ b/enabler/src/de/schildbach/pte/VorProvider.java @@ -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); diff --git a/enabler/src/de/schildbach/pte/VvtProvider.java b/enabler/src/de/schildbach/pte/VvtProvider.java index 9ea71092..3af3e6a6 100644 --- a/enabler/src/de/schildbach/pte/VvtProvider.java +++ b/enabler/src/de/schildbach/pte/VvtProvider.java @@ -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); }