--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2009/09/29 19:06:34 357 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/01/28 09:16:33 564 @@ -1,5 +1,7 @@ package dk.thoerup.traininfo.provider; + +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -23,11 +25,44 @@ return stations; } + @Override public boolean lookupStations(Location location) { - boolean success = false; - String url = XmlUtil.SERVICE_BASE + "/LocateStations?latitude=" + location.getLatitude() + "&longitude=" + location.getLongitude(); + String url = XmlUtil.SERVICE_BASE + "/LocateStations?latitude=" + (float)location.getLatitude() + "&longitude=" + (float)location.getLongitude(); + Log.i("url", url); + return lookupStationsWorker(url); + } + + @Override + public boolean lookupStationsByName(String name) { + + // String url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + Uri.encode(name); + String url = ""; + + try { + url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + URLEncoder.encode(name, "ISO8859-1"); + } catch (Exception e) { + Log.e("lookupStations", "Encoding failed", e); + } + + Log.i("url", url); + return lookupStationsWorker(url); + } + + + @Override + public boolean lookupStationsByIds(String ids) { + String url = ""; + url = XmlUtil.SERVICE_BASE + "/LocateStations?list=" + ids; + Log.i("url", url); + return lookupStationsWorker(url); + } + + + public boolean lookupStationsWorker(String url) { + boolean success = false; + try { stations.clear(); @@ -74,6 +109,18 @@ if (nodeName.equals("calcdist")) station.setDistance( (int) Double.parseDouble(content) ); + + if (nodeName.equals("address")) + station.setAddress( content ); + + if (nodeName.equals("regional")) + station.setRegional( Boolean.parseBoolean(content) ); + + if (nodeName.equals("strain")) + station.setSTrain( Boolean.parseBoolean(content) ); + + if (nodeName.equals("metro")) + station.setMetro( Boolean.parseBoolean(content) ); } stations.add(station);