--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlTimetableProvider.java 2010/08/02 23:18:53 1006 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlTimetableProvider.java 2010/08/03 06:12:10 1007 @@ -17,54 +17,38 @@ public class XmlTimetableProvider implements TimetableProvider { final static int CACHE_TIMEOUT = 60*1000; - - List timetables; - AndroidTimeoutCache> departureCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); - - @Override - public List getTimetable(String type, String trainID) { - String key = type + "-" + trainID; - List list = departureCache.get(key); - - if (list == null) { - list = new ArrayList(); - } - - return list; - } + AndroidTimeoutCache> departureCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); @Override - public boolean lookupTimetable(String type, String trainID) { - boolean success; + public List lookupTimetable(String type, String trainID) { String trainNumber = extractTrainNumber(trainID); String key = type + "-" + trainID; - timetables = departureCache.get(key); + List timetables = departureCache.get(key); if (timetables == null) { - success = lookupTimetableWorker(type, trainNumber); + timetables = lookupTimetableWorker(type, trainNumber); - if (success) { + if (timetables != null) { departureCache.put(key, timetables); } } else { Log.i("XmlTimetableProvider", "cache hit !!!"); - success = true; } - return success; + return timetables; } - public boolean lookupTimetableWorker(String type, String trainNumber) { - boolean success = false; + public List lookupTimetableWorker(String type, String trainNumber) { + String url = XmlUtil.SERVICE_BASE + "/TimetableServlet?train=" + trainNumber + "&type=" + type; Log.i("url", url); try { - timetables = new ArrayList(); + List timetables = new ArrayList(); String xml = DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); @@ -117,15 +101,14 @@ } timetables.add(timetable); } - success = true; + return timetables; } catch (Exception e) { Log.e("XmlStationProvider", "lookupStations: ", e); } - return success; - + return null; } private String extractTrainNumber (String trainID) {