--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java 2010/05/03 11:19:18 699 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java 2010/06/11 14:05:24 835 @@ -24,7 +24,7 @@ final static int CACHE_TIMEOUT = 60*1000; - AndroidTimeoutCache> departureCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); + AndroidTimeoutCache> departureCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); List departures; @@ -33,16 +33,18 @@ StringBuilder builder = new StringBuilder(512); @Override - public boolean lookupDepartures(int stationID) { + public boolean lookupDepartures(int stationID, boolean arrival) { boolean success; - departures = departureCache.get(stationID); + String key = "" + stationID + ":" + arrival; + + departures = departureCache.get(key); if (departures == null) { - success = lookupDeparturesWorker(stationID); + success = lookupDeparturesWorker(stationID, arrival); if (success) { - departureCache.put(stationID, departures); + departureCache.put(key, departures); } } else { @@ -53,13 +55,13 @@ return success; } - private boolean lookupDeparturesWorker(int stationID) { + private boolean lookupDeparturesWorker(int stationID, boolean arrival) { boolean success = false; departures = new ArrayList(); try { - - String url = XmlUtil.SERVICE_BASE + "/DepartureServlet?format=xml&station=" + stationID; + int iArrival = arrival ? 1 : 0; + String url = XmlUtil.SERVICE_BASE + "/DepartureServlet?format=xml&station=" + stationID + "&arrival=" + iArrival; Log.i("xmlurl",url); String doc = DownloadUtil.getContentString(url, 45000, "ISO-8859-1"); @@ -81,8 +83,11 @@ } @Override - public List getDepartures(int station) { - List list = departureCache.get(station); + public List getDepartures(int station,boolean arrival) { + + String key = "" + station + ":" + arrival; + + List list = departureCache.get(key); if (list == null) { list = new ArrayList();