--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/09/16 15:31:31 1065 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/09/16 15:32:42 1066 @@ -5,13 +5,16 @@ import java.util.ArrayList; import java.util.List; +import org.simpleframework.xml.Serializer; +import org.simpleframework.xml.core.Persister; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import android.location.Location; import android.util.Log; -import dk.thoerup.traininfo.StationBean; +import dk.thoerup.android.traininfo.common.StationBean; +import dk.thoerup.android.traininfo.common.TimetableBean; import dk.thoerup.traininfo.util.AndroidTimeoutCache; import dk.thoerup.traininfo.util.DownloadUtil; import dk.thoerup.traininfo.util.XmlUtil; @@ -21,7 +24,7 @@ final static int CACHE_TIMEOUT = 300*1000; //List stations = new ArrayList(); - AndroidTimeoutCache> stationCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); + AndroidTimeoutCache stationCache = new AndroidTimeoutCache(CACHE_TIMEOUT); double roundToPlaces(double value, int places) { @@ -32,7 +35,7 @@ } @Override - public List lookupStations(Location location) { + public StationBean lookupStations(Location location) { double lat = roundToPlaces(location.getLatitude(), 4); double lng = roundToPlaces(location.getLongitude(), 4); @@ -42,7 +45,7 @@ } @Override - public List lookupStationsByName(String name) { + public StationBean lookupStationsByName(String name) { // String url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + Uri.encode(name); String url = ""; @@ -59,7 +62,7 @@ @Override - public List lookupStationsByIds(String ids) { + public StationBean lookupStationsByIds(String ids) { String url = ""; url = XmlUtil.SERVICE_BASE + "/LocateStations?list=" + ids; @@ -67,9 +70,9 @@ return lookupStationsWorker(url); } - public List lookupStationsWorker(String url) { + public StationBean lookupStationsWorker(String url) { - List tmpStations = stationCache.get(url); + StationBean tmpStations = stationCache.get(url); if (tmpStations != null) { Log.i("lookupStations", "cache hit " + url); @@ -85,67 +88,17 @@ } - public List fetchStations(String url) { + public StationBean fetchStations(String url) { try { - List stations = new ArrayList(); String xml = DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); - - Document doc = XmlUtil.parseXML(xml); - Node rootNode = doc.getDocumentElement(); // stations - NodeList stationList = rootNode.getChildNodes(); - - - for (int i=0; i