/[projects]/android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java
ViewVC logotype

Diff of /android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 834 by torben, Mon May 3 11:19:18 2010 UTC revision 835 by torben, Fri Jun 11 14:05:24 2010 UTC
# Line 24  public class XmlDepartureProvider extend Line 24  public class XmlDepartureProvider extend
24          final static int CACHE_TIMEOUT = 60*1000;          final static int CACHE_TIMEOUT = 60*1000;
25                                    
26                    
27          AndroidTimeoutCache<Integer,List<DepartureBean>> departureCache = new AndroidTimeoutCache<Integer,List<DepartureBean>>(CACHE_TIMEOUT);          AndroidTimeoutCache<String,List<DepartureBean>> departureCache = new AndroidTimeoutCache<String,List<DepartureBean>>(CACHE_TIMEOUT);
28                    
29          List<DepartureBean> departures;          List<DepartureBean> departures;
30                                    
# Line 33  public class XmlDepartureProvider extend Line 33  public class XmlDepartureProvider extend
33          StringBuilder builder = new StringBuilder(512);          StringBuilder builder = new StringBuilder(512);
34                    
35          @Override          @Override
36          public boolean lookupDepartures(int stationID) {                          public boolean lookupDepartures(int stationID, boolean arrival) {              
37                  boolean success;                  boolean success;
38                                    
39                  departures = departureCache.get(stationID);                  String key = "" + stationID + ":" + arrival;
40                    
41                    departures = departureCache.get(key);
42                    
43                  if (departures == null) {                                        if (departures == null) {                      
44                          success = lookupDeparturesWorker(stationID);                          success = lookupDeparturesWorker(stationID, arrival);
45                                                    
46                          if (success) {                                            if (success) {                  
47                                  departureCache.put(stationID, departures);                                  departureCache.put(key, departures);
48                          }                          }
49                                                    
50                  } else {                  } else {
# Line 53  public class XmlDepartureProvider extend Line 55  public class XmlDepartureProvider extend
55                  return success;                  return success;
56          }          }
57                    
58          private boolean lookupDeparturesWorker(int stationID) {          private boolean lookupDeparturesWorker(int stationID, boolean arrival) {
59                  boolean success = false;                  boolean success = false;
60                  departures = new ArrayList<DepartureBean>();                  departures = new ArrayList<DepartureBean>();
61                  try                  try
62                  {                        {      
63                            int iArrival = arrival ? 1 : 0;
64                          String url = XmlUtil.SERVICE_BASE + "/DepartureServlet?format=xml&station=" + stationID;                          String url = XmlUtil.SERVICE_BASE + "/DepartureServlet?format=xml&station=" + stationID + "&arrival=" + iArrival;
65                          Log.i("xmlurl",url);                          Log.i("xmlurl",url);
66                          String doc =  DownloadUtil.getContentString(url, 45000, "ISO-8859-1");                          String doc =  DownloadUtil.getContentString(url, 45000, "ISO-8859-1");
67                                                    
# Line 81  public class XmlDepartureProvider extend Line 83  public class XmlDepartureProvider extend
83          }          }
84                    
85          @Override          @Override
86          public List<DepartureBean> getDepartures(int station) {          public List<DepartureBean> getDepartures(int station,boolean arrival) {
87                  List<DepartureBean> list = departureCache.get(station);                  
88                    String key = "" + station + ":" + arrival;
89                    
90                    List<DepartureBean> list = departureCache.get(key);
91                                    
92                  if (list == null) {                                      if (list == null) {                    
93                          list = new ArrayList<DepartureBean>();                          list = new ArrayList<DepartureBean>();

Legend:
Removed from v.834  
changed lines
  Added in v.835

  ViewVC Help
Powered by ViewVC 1.1.20