diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index d61ab67d..54cbcc4b 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -100,14 +100,18 @@ public abstract class AbstractEfaProvider implements NetworkProvider return uri + "&" + additionalQueryParameter; } - protected List xmlStopfinderRequest(final CharSequence constraint) throws IOException + protected List xmlStopfinderRequest(final Location constraint) throws IOException { final StringBuilder uri = new StringBuilder(apiBase); - uri.append("XML_STOPFINDER_REQUEST?coordOutputFormat=WGS84&locationServerActive=1&name_sf="); - uri.append(ParserUtils.urlEncode(constraint.toString(), "ISO-8859-1")); - uri.append("&type_sf=any&SpEncId=0"); - uri.append("&anyObjFilter_sf=126"); // 1=place 2=stop 4=street 8=address 16=crossing 32=poi 64=postcode - uri.append("&reducedAnyPostcodeObjFilter_sf=64&reducedAnyTooManyObjFilter_sf=2&useHouseNumberList=true®ionID_sf=1"); + uri.append("XML_STOPFINDER_REQUEST?coordOutputFormat=WGS84&locationServerActive=1"); + appendLocation(uri, constraint, "sf"); + if (constraint.type == LocationType.ANY) + { + uri.append("&SpEncId=0"); + uri.append("&anyObjFilter_sf=126"); // 1=place 2=stop 4=street 8=address 16=crossing 32=poi 64=postcode + uri.append("&reducedAnyPostcodeObjFilter_sf=64&reducedAnyTooManyObjFilter_sf=2"); + uri.append("&useHouseNumberList=true®ionID_sf=1"); + } if (additionalQueryParameter != null) uri.append('&').append(additionalQueryParameter); @@ -146,13 +150,26 @@ public abstract class AbstractEfaProvider implements NetworkProvider XmlPullUtil.require(pp, "itdOdvPlace"); XmlPullUtil.next(pp); + XmlPullUtil.require(pp, "itdOdvName"); + final String nameState = pp.getAttributeValue(null, "state"); XmlPullUtil.enter(pp, "itdOdvName"); if (XmlPullUtil.test(pp, "itdMessage")) XmlPullUtil.next(pp); - while (XmlPullUtil.test(pp, "odvNameElem")) - results.add(processOdvNameElem(pp, null)); + if ("identified".equals(nameState) || "list".equals(nameState)) + { + while (XmlPullUtil.test(pp, "odvNameElem")) + results.add(processOdvNameElem(pp, null)); + } + else if ("notidentified".equals(nameState)) + { + // do nothing + } + else + { + throw new RuntimeException("unknown nameState '" + nameState + "' on " + uri); + } XmlPullUtil.exit(pp, "itdOdvName"); diff --git a/src/de/schildbach/pte/AtcProvider.java b/src/de/schildbach/pte/AtcProvider.java index 13381a70..2e20b625 100644 --- a/src/de/schildbach/pte/AtcProvider.java +++ b/src/de/schildbach/pte/AtcProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +48,18 @@ public class AtcProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/AvvProvider.java b/src/de/schildbach/pte/AvvProvider.java index 77a197b2..620161d4 100644 --- a/src/de/schildbach/pte/AvvProvider.java +++ b/src/de/schildbach/pte/AvvProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class AvvProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/BsagProvider.java b/src/de/schildbach/pte/BsagProvider.java index a6e954b9..42748938 100644 --- a/src/de/schildbach/pte/BsagProvider.java +++ b/src/de/schildbach/pte/BsagProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +48,18 @@ public class BsagProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/BsvagProvider.java b/src/de/schildbach/pte/BsvagProvider.java index 9736660a..c8ecc5db 100644 --- a/src/de/schildbach/pte/BsvagProvider.java +++ b/src/de/schildbach/pte/BsvagProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -46,12 +49,18 @@ public class BsvagProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/BvbProvider.java b/src/de/schildbach/pte/BvbProvider.java index b5b1a7d0..a47b235c 100644 --- a/src/de/schildbach/pte/BvbProvider.java +++ b/src/de/schildbach/pte/BvbProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -46,12 +49,18 @@ public class BvbProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/DingProvider.java b/src/de/schildbach/pte/DingProvider.java index 8157472c..d77cd473 100644 --- a/src/de/schildbach/pte/DingProvider.java +++ b/src/de/schildbach/pte/DingProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class DingProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/DubProvider.java b/src/de/schildbach/pte/DubProvider.java index 62878a0f..b87a66e5 100644 --- a/src/de/schildbach/pte/DubProvider.java +++ b/src/de/schildbach/pte/DubProvider.java @@ -17,12 +17,15 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -53,12 +56,18 @@ public class DubProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/GvhProvider.java b/src/de/schildbach/pte/GvhProvider.java index ae631a15..2e9c051a 100644 --- a/src/de/schildbach/pte/GvhProvider.java +++ b/src/de/schildbach/pte/GvhProvider.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.Color; import de.schildbach.pte.util.ParserUtils; @@ -60,7 +61,7 @@ public class GvhProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } private static final String NEARBY_STATION_URI = API_BASE diff --git a/src/de/schildbach/pte/IvbProvider.java b/src/de/schildbach/pte/IvbProvider.java index d7105637..004f88d8 100644 --- a/src/de/schildbach/pte/IvbProvider.java +++ b/src/de/schildbach/pte/IvbProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class IvbProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/KvvProvider.java b/src/de/schildbach/pte/KvvProvider.java index 92e58d3d..b3e34547 100644 --- a/src/de/schildbach/pte/KvvProvider.java +++ b/src/de/schildbach/pte/KvvProvider.java @@ -23,6 +23,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -56,7 +57,7 @@ public class KvvProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/LinzProvider.java b/src/de/schildbach/pte/LinzProvider.java index 364ec46c..9c54545c 100644 --- a/src/de/schildbach/pte/LinzProvider.java +++ b/src/de/schildbach/pte/LinzProvider.java @@ -17,12 +17,15 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import java.util.Locale; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -47,12 +50,18 @@ public class LinzProvider extends AbstractEfaProvider public boolean hasCapabilities(final Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + private static final String NEARBY_LATLON_URI = API_BASE + "XSLT_DM_REQUEST" + "?outputFormat=XML&mode=direct&coordOutputFormat=WGS84&mergeDep=1&useAllStops=1&name_dm=%2.6f:%2.6f:WGS84&type_dm=coord&itOptionsActive=1&ptOptionsActive=1&useProxFootSearch=1&excludedMeans=checkbox"; diff --git a/src/de/schildbach/pte/MariborProvider.java b/src/de/schildbach/pte/MariborProvider.java index 0a834c92..14e2833b 100644 --- a/src/de/schildbach/pte/MariborProvider.java +++ b/src/de/schildbach/pte/MariborProvider.java @@ -16,11 +16,14 @@ */ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +48,18 @@ public class MariborProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/MetProvider.java b/src/de/schildbach/pte/MetProvider.java index f731775a..26e4235e 100644 --- a/src/de/schildbach/pte/MetProvider.java +++ b/src/de/schildbach/pte/MetProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -63,7 +64,7 @@ public class MetProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index ec975394..0573afbe 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.Color; import de.schildbach.pte.util.ParserUtils; @@ -60,7 +61,7 @@ public class MvvProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/NaldoProvider.java b/src/de/schildbach/pte/NaldoProvider.java index e8d9873d..68d69a86 100644 --- a/src/de/schildbach/pte/NaldoProvider.java +++ b/src/de/schildbach/pte/NaldoProvider.java @@ -16,11 +16,14 @@ */ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +48,18 @@ public class NaldoProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/NvbwProvider.java b/src/de/schildbach/pte/NvbwProvider.java index bcd69a35..55056786 100644 --- a/src/de/schildbach/pte/NvbwProvider.java +++ b/src/de/schildbach/pte/NvbwProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -56,7 +57,7 @@ public class NvbwProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/SfProvider.java b/src/de/schildbach/pte/SfProvider.java index e689ed4b..98b4ca2e 100644 --- a/src/de/schildbach/pte/SfProvider.java +++ b/src/de/schildbach/pte/SfProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -78,7 +79,7 @@ public class SfProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/StvProvider.java b/src/de/schildbach/pte/StvProvider.java index 6a69544b..fef78498 100644 --- a/src/de/schildbach/pte/StvProvider.java +++ b/src/de/schildbach/pte/StvProvider.java @@ -14,13 +14,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +49,18 @@ public class StvProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/SvvProvider.java b/src/de/schildbach/pte/SvvProvider.java index 9e619c7f..526397af 100644 --- a/src/de/schildbach/pte/SvvProvider.java +++ b/src/de/schildbach/pte/SvvProvider.java @@ -14,13 +14,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +49,18 @@ public class SvvProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/SydneyProvider.java b/src/de/schildbach/pte/SydneyProvider.java index 4367e732..6a2c6af6 100644 --- a/src/de/schildbach/pte/SydneyProvider.java +++ b/src/de/schildbach/pte/SydneyProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -63,7 +64,7 @@ public class SydneyProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/TflProvider.java b/src/de/schildbach/pte/TflProvider.java index 26eea518..5230af9d 100644 --- a/src/de/schildbach/pte/TflProvider.java +++ b/src/de/schildbach/pte/TflProvider.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.Color; import de.schildbach.pte.util.ParserUtils; @@ -67,7 +68,7 @@ public class TflProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } private static final String NEARBY_STATION_URI = API_BASE diff --git a/src/de/schildbach/pte/TleaProvider.java b/src/de/schildbach/pte/TleaProvider.java index ac56be1d..eff31bd6 100644 --- a/src/de/schildbach/pte/TleaProvider.java +++ b/src/de/schildbach/pte/TleaProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -64,7 +65,7 @@ public class TleaProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/TlemProvider.java b/src/de/schildbach/pte/TlemProvider.java index 664559a4..1a39201b 100644 --- a/src/de/schildbach/pte/TlemProvider.java +++ b/src/de/schildbach/pte/TlemProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -64,7 +65,7 @@ public class TlemProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/TlseProvider.java b/src/de/schildbach/pte/TlseProvider.java index cb4964c5..38106cf4 100644 --- a/src/de/schildbach/pte/TlseProvider.java +++ b/src/de/schildbach/pte/TlseProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -64,7 +65,7 @@ public class TlseProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/TlswProvider.java b/src/de/schildbach/pte/TlswProvider.java index addc566b..f9402ba1 100644 --- a/src/de/schildbach/pte/TlswProvider.java +++ b/src/de/schildbach/pte/TlswProvider.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -63,7 +64,7 @@ public class TlswProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VagfrProvider.java b/src/de/schildbach/pte/VagfrProvider.java index 2a126245..49f54e0c 100644 --- a/src/de/schildbach/pte/VagfrProvider.java +++ b/src/de/schildbach/pte/VagfrProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -45,12 +48,18 @@ public class VagfrProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/VblProvider.java b/src/de/schildbach/pte/VblProvider.java index fa8a211b..b5315a97 100644 --- a/src/de/schildbach/pte/VblProvider.java +++ b/src/de/schildbach/pte/VblProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -56,7 +57,7 @@ public class VblProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VmsProvider.java b/src/de/schildbach/pte/VmsProvider.java index f62de129..3597beef 100644 --- a/src/de/schildbach/pte/VmsProvider.java +++ b/src/de/schildbach/pte/VmsProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class VmsProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VmvProvider.java b/src/de/schildbach/pte/VmvProvider.java index 0e412fe2..0eefefea 100644 --- a/src/de/schildbach/pte/VmvProvider.java +++ b/src/de/schildbach/pte/VmvProvider.java @@ -17,9 +17,11 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; @@ -44,15 +46,21 @@ public class VmvProvider extends AbstractEfaProvider return NETWORK_ID; } - public boolean hasCapabilities(final Capability... capabilities) + public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/VorProvider.java b/src/de/schildbach/pte/VorProvider.java index b841dd6c..9e14b83d 100644 --- a/src/de/schildbach/pte/VorProvider.java +++ b/src/de/schildbach/pte/VorProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class VorProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VrnProvider.java b/src/de/schildbach/pte/VrnProvider.java index 9aaefce1..38c0be2e 100644 --- a/src/de/schildbach/pte/VrnProvider.java +++ b/src/de/schildbach/pte/VrnProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -57,7 +58,7 @@ public class VrnProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VrrProvider.java b/src/de/schildbach/pte/VrrProvider.java index 24f4222e..f373dbb1 100644 --- a/src/de/schildbach/pte/VrrProvider.java +++ b/src/de/schildbach/pte/VrrProvider.java @@ -27,6 +27,7 @@ import java.util.Locale; import java.util.Map; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.Color; import de.schildbach.pte.util.ParserUtils; @@ -61,7 +62,7 @@ public class VrrProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } private static final String NEARBY_LATLON_URI = API_BASE diff --git a/src/de/schildbach/pte/VrtProvider.java b/src/de/schildbach/pte/VrtProvider.java index 6ff82ebf..11a2b645 100644 --- a/src/de/schildbach/pte/VrtProvider.java +++ b/src/de/schildbach/pte/VrtProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -56,7 +57,7 @@ public class VrtProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VvmProvider.java b/src/de/schildbach/pte/VvmProvider.java index fc8ee895..255778a1 100644 --- a/src/de/schildbach/pte/VvmProvider.java +++ b/src/de/schildbach/pte/VvmProvider.java @@ -24,6 +24,7 @@ import java.util.Date; import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -56,7 +57,7 @@ public class VvmProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/src/de/schildbach/pte/VvoProvider.java b/src/de/schildbach/pte/VvoProvider.java index a6f2c617..1b745055 100644 --- a/src/de/schildbach/pte/VvoProvider.java +++ b/src/de/schildbach/pte/VvoProvider.java @@ -17,11 +17,14 @@ package de.schildbach.pte; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.util.ParserUtils; /** @@ -46,12 +49,18 @@ public class VvoProvider extends AbstractEfaProvider public boolean hasCapabilities(Capability... capabilities) { for (final Capability capability : capabilities) - if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) return true; return false; } + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.STATION, 0, null, constraint.toString())); + } + @Override protected String nearbyLatLonUri(final int lat, final int lon) { diff --git a/src/de/schildbach/pte/VvsProvider.java b/src/de/schildbach/pte/VvsProvider.java index 508d3f54..ac7d11e9 100644 --- a/src/de/schildbach/pte/VvsProvider.java +++ b/src/de/schildbach/pte/VvsProvider.java @@ -58,7 +58,7 @@ public class VvsProvider extends AbstractEfaProvider @Override public List autocompleteStations(final CharSequence constraint) throws IOException { - return xmlStopfinderRequest(constraint); + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } @Override diff --git a/test/de/schildbach/pte/live/AtcProviderLiveTest.java b/test/de/schildbach/pte/live/AtcProviderLiveTest.java index ee9aeb9c..d8c72b2a 100644 --- a/test/de/schildbach/pte/live/AtcProviderLiveTest.java +++ b/test/de/schildbach/pte/live/AtcProviderLiveTest.java @@ -36,7 +36,7 @@ public class AtcProviderLiveTest @Test public void autocomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Bologna"); + final List autocompletes = provider.autocompleteStations("ponte"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/BsagProviderLiveTest.java b/test/de/schildbach/pte/live/BsagProviderLiveTest.java index d32cb58b..71ca3864 100644 --- a/test/de/schildbach/pte/live/BsagProviderLiveTest.java +++ b/test/de/schildbach/pte/live/BsagProviderLiveTest.java @@ -35,7 +35,7 @@ public class BsagProviderLiveTest @Test public void autocompleteIncomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Kur"); + final List autocompletes = provider.autocompleteStations("Kurf"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/BsvagProviderLiveTest.java b/test/de/schildbach/pte/live/BsvagProviderLiveTest.java index 326d35e4..d4d777a3 100644 --- a/test/de/schildbach/pte/live/BsvagProviderLiveTest.java +++ b/test/de/schildbach/pte/live/BsvagProviderLiveTest.java @@ -35,7 +35,7 @@ public class BsvagProviderLiveTest @Test public void autocompleteIncomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Kur"); + final List autocompletes = provider.autocompleteStations("Kurf"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/BvbProviderLiveTest.java b/test/de/schildbach/pte/live/BvbProviderLiveTest.java index 7f3d783f..f2e27f09 100644 --- a/test/de/schildbach/pte/live/BvbProviderLiveTest.java +++ b/test/de/schildbach/pte/live/BvbProviderLiveTest.java @@ -36,7 +36,7 @@ public class BvbProviderLiveTest @Test public void autocomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Basel"); + final List autocompletes = provider.autocompleteStations("Haupt"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/LinzProviderLiveTest.java b/test/de/schildbach/pte/live/LinzProviderLiveTest.java index fc9e9cdb..72d89bd2 100644 --- a/test/de/schildbach/pte/live/LinzProviderLiveTest.java +++ b/test/de/schildbach/pte/live/LinzProviderLiveTest.java @@ -40,7 +40,7 @@ public class LinzProviderLiveTest @Test public void autocompleteIncomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Linz, H"); + final List autocompletes = provider.autocompleteStations("Friedhof"); list(autocompletes); } @@ -56,7 +56,7 @@ public class LinzProviderLiveTest @Test public void autocompleteCity() throws Exception { - final List autocompletes = provider.autocompleteStations("Linz"); + final List autocompletes = provider.autocompleteStations("Leonding"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/NaldoProviderLiveTest.java b/test/de/schildbach/pte/live/NaldoProviderLiveTest.java index 28f88d6c..efb40d5e 100644 --- a/test/de/schildbach/pte/live/NaldoProviderLiveTest.java +++ b/test/de/schildbach/pte/live/NaldoProviderLiveTest.java @@ -36,7 +36,7 @@ public class NaldoProviderLiveTest @Test public void autocompleteIncomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Kur"); + final List autocompletes = provider.autocompleteStations("Kurf"); list(autocompletes); } diff --git a/test/de/schildbach/pte/live/VagfrProviderLiveTest.java b/test/de/schildbach/pte/live/VagfrProviderLiveTest.java index 3d02b127..a2171923 100644 --- a/test/de/schildbach/pte/live/VagfrProviderLiveTest.java +++ b/test/de/schildbach/pte/live/VagfrProviderLiveTest.java @@ -36,7 +36,7 @@ public class VagfrProviderLiveTest @Test public void autocompleteIncomplete() throws Exception { - final List autocompletes = provider.autocompleteStations("Kur"); + final List autocompletes = provider.autocompleteStations("Kurf"); list(autocompletes); }