--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/08/02 20:15:12 1003 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlStationProvider.java 2010/08/02 23:01:47 1004 @@ -12,13 +12,16 @@ import android.location.Location; import android.util.Log; import dk.thoerup.traininfo.StationBean; +import dk.thoerup.traininfo.util.AndroidTimeoutCache; import dk.thoerup.traininfo.util.DownloadUtil; import dk.thoerup.traininfo.util.XmlUtil; public class XmlStationProvider implements StationProvider { + + final static int CACHE_TIMEOUT = 300*1000; List stations = new ArrayList(); - + AndroidTimeoutCache> stationCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); @Override public List getStations() { @@ -58,9 +61,27 @@ Log.i("url", url); return lookupStationsWorker(url); } + + public boolean lookupStationsWorker(String url) { + boolean result; + List tmpStations = stationCache.get(url); + + if (tmpStations != null) { + Log.i("lookupStations", "cache hit " + url); + result = true; + } else { + result = fetchStations(url); + + if (result == true) { + stationCache.put(url, stations); + } + } + + return result; + } - public boolean lookupStationsWorker(String url) { + public boolean fetchStations(String url) { boolean success = false; try {