--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/08/02 23:03:11 1005 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/08/02 23:18:53 1006 @@ -20,24 +20,20 @@ final static int CACHE_TIMEOUT = 300*1000; - List stations = new ArrayList(); + //List stations = new ArrayList(); AndroidTimeoutCache> stationCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); - @Override - public List getStations() { - return stations; - } @Override - public boolean lookupStations(Location location) { + public List lookupStations(Location location) { 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) { + public List lookupStationsByName(String name) { // String url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + Uri.encode(name); String url = ""; @@ -54,7 +50,7 @@ @Override - public boolean lookupStationsByIds(String ids) { + public List lookupStationsByIds(String ids) { String url = ""; url = XmlUtil.SERVICE_BASE + "/LocateStations?list=" + ids; @@ -62,31 +58,28 @@ return lookupStationsWorker(url); } - public boolean lookupStationsWorker(String url) { - boolean result; + public List lookupStationsWorker(String url) { + List tmpStations = stationCache.get(url); if (tmpStations != null) { Log.i("lookupStations", "cache hit " + url); - stations = tmpStations; - result = true; } else { - result = fetchStations(url); + tmpStations = fetchStations(url); - if (result == true) { - stationCache.put(url, stations); + if (tmpStations != null) { + stationCache.put(url, tmpStations); } } - return result; + return tmpStations; } - public boolean fetchStations(String url) { - boolean success = false; + public List fetchStations(String url) { try { - stations.clear(); + List stations = new ArrayList(); String xml = DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); @@ -144,12 +137,12 @@ } stations.add(station); } - success = true; + return stations; } catch (Exception e) { Log.e("XmlStationProvider", "lookupStations: ", e); + return null; } - return success; } }