diff --git a/src/de/schildbach/pte/OebbProvider.java b/src/de/schildbach/pte/OebbProvider.java
index ca459296..4e653d88 100644
--- a/src/de/schildbach/pte/OebbProvider.java
+++ b/src/de/schildbach/pte/OebbProvider.java
@@ -28,9 +28,30 @@ public class OebbProvider implements NetworkProvider
return true;
}
+ private static final String NAME_URL = "http://fahrplan.oebb.at/bin/stboard.exe/dn?input=";
+ private static final Pattern P_SINGLE_NAME = Pattern
+ .compile(".*?.*", Pattern.DOTALL);
+ private static final Pattern P_MULTI_NAME = Pattern.compile("", Pattern.DOTALL);
+
public List autoCompleteStationName(final CharSequence constraint) throws IOException
{
- throw new UnsupportedOperationException();
+ final CharSequence page = ParserUtils.scrape(NAME_URL + ParserUtils.urlEncode(constraint.toString()));
+
+ final List names = new ArrayList();
+
+ final Matcher mSingle = P_SINGLE_NAME.matcher(page);
+ if (mSingle.matches())
+ {
+ names.add(ParserUtils.resolveEntities(mSingle.group(1)));
+ }
+ else
+ {
+ final Matcher mMulti = P_MULTI_NAME.matcher(page);
+ while (mMulti.find())
+ names.add(ParserUtils.resolveEntities(mMulti.group(2)));
+ }
+
+ return names;
}
public List nearbyStations(final double lat, final double lon, final int maxDistance, final int maxStations) throws IOException