From e5aa8fb51d40fe6e4cf1c009f30f271168f77bbe Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 9 Aug 2012 14:02:55 +0200 Subject: [PATCH] fixed umlauts in Dresden autocomplete --- enabler/src/de/schildbach/pte/AbstractEfaProvider.java | 9 ++++++++- enabler/src/de/schildbach/pte/VvoProvider.java | 4 +++- .../test/de/schildbach/pte/live/VvoProviderLiveTest.java | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index a918dfd9..b210f308 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -22,6 +22,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.Charset; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -83,6 +84,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider private final String additionalQueryParameter; private final boolean canAcceptPoiID; private final boolean needsSpEncId; + private Charset requestUrlEncoding = ISO_8859_1; private boolean suppressPositions = false; private final XmlPullParserFactory parserFactory; @@ -148,6 +150,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider this.needsSpEncId = needsSpEncId; } + protected void setRequestUrlEncoding(final Charset requestUrlEncoding) + { + this.requestUrlEncoding = requestUrlEncoding; + } + protected void setSuppressPositions(final boolean suppressPositions) { this.suppressPositions = suppressPositions; @@ -2311,7 +2318,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider else { uri.append("&type_").append(paramSuffix).append("=").append(locationTypeValue(location)); - uri.append("&name_").append(paramSuffix).append("=").append(ParserUtils.urlEncode(locationValue(location), ISO_8859_1)); + uri.append("&name_").append(paramSuffix).append("=").append(ParserUtils.urlEncode(locationValue(location), requestUrlEncoding)); } } diff --git a/enabler/src/de/schildbach/pte/VvoProvider.java b/enabler/src/de/schildbach/pte/VvoProvider.java index 117ea66e..b6d84ab9 100644 --- a/enabler/src/de/schildbach/pte/VvoProvider.java +++ b/enabler/src/de/schildbach/pte/VvoProvider.java @@ -33,12 +33,14 @@ public class VvoProvider extends AbstractEfaProvider public VvoProvider() { - super(API_BASE, null); + this(API_BASE); } public VvoProvider(final String apiBase) { super(apiBase, null); + + setRequestUrlEncoding(UTF_8); } public NetworkId id() diff --git a/enabler/test/de/schildbach/pte/live/VvoProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/VvoProviderLiveTest.java index 3da66675..709dc395 100644 --- a/enabler/test/de/schildbach/pte/live/VvoProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/VvoProviderLiveTest.java @@ -73,6 +73,14 @@ public class VvoProviderLiveTest extends AbstractProviderLiveTest print(autocompletes); } + @Test + public void autocompleteWithUmlaut() throws Exception + { + final List autocompletes = provider.autocompleteStations("Hülßestraße"); + + print(autocompletes); + } + @Test public void shortConnection() throws Exception {