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

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

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

revision 391 by torben, Sat Oct 3 10:55:43 2009 UTC revision 840 by torben, Fri Jun 11 18:46:46 2010 UTC
# Line 23  public class XmlTimetableProvider implem Line 23  public class XmlTimetableProvider implem
23          AndroidTimeoutCache<String,List<TimetableBean>> departureCache = new AndroidTimeoutCache<String,List<TimetableBean>>(CACHE_TIMEOUT);          AndroidTimeoutCache<String,List<TimetableBean>> departureCache = new AndroidTimeoutCache<String,List<TimetableBean>>(CACHE_TIMEOUT);
24                    
25          @Override          @Override
26          public List<TimetableBean> getTimetable(String trainID) {          public List<TimetableBean> getTimetable(String type, String trainID) {
27                  List<TimetableBean> list = departureCache.get(trainID);                  String key = type + "-" + trainID;
28                    List<TimetableBean> list = departureCache.get(key);
29                                    
30                  if (list == null) {                                      if (list == null) {                    
31                          list = new ArrayList<TimetableBean>();                          list = new ArrayList<TimetableBean>();
# Line 34  public class XmlTimetableProvider implem Line 35  public class XmlTimetableProvider implem
35          }          }
36    
37          @Override          @Override
38          public boolean lookupTimetable(String trainID) {          public boolean lookupTimetable(String type, String trainID) {
39                  boolean success;                  boolean success;
40                                    
41                  timetables = departureCache.get(trainID);                  String trainNumber = extractTrainNumber(trainID);
42                    
43                    String key = type + "-" + trainID;
44                    timetables = departureCache.get(key);
45                    
46                  if (timetables == null) {                                        if (timetables == null) {                      
47                          success = lookupTimetableWorker(trainID);                          success = lookupTimetableWorker(type, trainNumber);
48                                                    
49                          if (success) {                                            if (success) {                  
50                                  departureCache.put(trainID, timetables);                                  departureCache.put(key, timetables);
51                          }                          }
52                                                    
53                  } else {                  } else {
# Line 55  public class XmlTimetableProvider implem Line 59  public class XmlTimetableProvider implem
59          }          }
60                    
61    
62          public boolean lookupTimetableWorker(String trainID) {          public boolean lookupTimetableWorker(String type, String trainNumber) {
63                  boolean success = false;                  boolean success = false;
64                  String url = XmlUtil.SERVICE_BASE + "/TimetableServlet?train=" + trainID.replace(" ", "%20") ;                  String url = XmlUtil.SERVICE_BASE + "/TimetableServlet?train=" + trainNumber + "&type=" + type;
65                  Log.i("url", url);                  Log.i("url", url);
66                  try {                  try {
67                          timetables = new ArrayList<TimetableBean>();                          timetables = new ArrayList<TimetableBean>();
# Line 104  public class XmlTimetableProvider implem Line 108  public class XmlTimetableProvider implem
108                                          if (nodeName.equals("departure"))                                          if (nodeName.equals("departure"))
109                                                  timetable.setDeparture( content );                                                  timetable.setDeparture( content );
110                                                                                    
111                                            if (nodeName.equals("stationid"))
112                                                    timetable.setStationId( Integer.parseInt(content));
113                                            
114                                          /*if (nodeName.equals("current"))                                          /*if (nodeName.equals("current"))
115                                                  timetable.setCurrent( Boolean.parseBoolean(content) );*/                                                  timetable.setCurrent( Boolean.parseBoolean(content) );*/
116    
# Line 116  public class XmlTimetableProvider implem Line 123  public class XmlTimetableProvider implem
123                  } catch (Exception e) {                  } catch (Exception e) {
124                          Log.e("XmlStationProvider", "lookupStations: ", e);                          Log.e("XmlStationProvider", "lookupStations: ", e);
125                  }                  }
126    
127                  return success;                  return success;
128    
129          }          }
130            
131            private String extractTrainNumber (String trainID) {
132    
133                    String parts[]  = trainID.split(" ");
134                    if (parts.length == 2) {
135                            return parts[1];
136                    } else {
137                            return parts[0];
138                    }
139            }
140    
141  }  }

Legend:
Removed from v.391  
changed lines
  Added in v.840

  ViewVC Help
Powered by ViewVC 1.1.20