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

Diff of /android/TrainInfo/src/dk/thoerup/traininfo/DepartureListAdapter.java

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

revision 343 by torben, Thu Sep 24 20:33:06 2009 UTC revision 1963 by torben, Sat Mar 30 10:31:12 2013 UTC
# Line 1  Line 1 
1  package dk.thoerup.traininfo;  package dk.thoerup.traininfo;
2    
3    import java.util.HashMap;
4  import java.util.List;  import java.util.List;
5    import java.util.Map;
6    
7  import android.content.Context;  import android.content.Context;
8  import android.view.LayoutInflater;  import android.view.LayoutInflater;
# Line 9  import android.view.ViewGroup; Line 11  import android.view.ViewGroup;
11  import android.widget.BaseAdapter;  import android.widget.BaseAdapter;
12  import android.widget.ImageView;  import android.widget.ImageView;
13  import android.widget.TextView;  import android.widget.TextView;
14    import dk.thoerup.android.traininfo.common.DepartureEntry;
15    
16  public class DepartureListAdapter extends BaseAdapter {  public class DepartureListAdapter extends BaseAdapter {
17    
18          private List<DepartureBean> departures;          boolean showDetails = false;
19            private List<DepartureEntry> departures;
20          LayoutInflater inflater;          LayoutInflater inflater;
21          Context context;          Context context;
22            
23            static Map<String,Integer> imageMap = new HashMap<String,Integer>();
24            static {
25                    buildImageMap();
26            }
27            
28          public DepartureListAdapter(Context context) {          public DepartureListAdapter(Context context) {
29                  super();                  super();
30                  this.context = context;                  this.context = context;
31                                    
32                  inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);                  inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);          
33            }
34                    
35    
36            public void toggleShowDetails() {
37                    showDetails = !showDetails;
38                    notifyDataSetChanged();
39          }          }
40                    
41          public void setDepartures(List<DepartureBean> departures) {          public void setDepartures(List<DepartureEntry> departures) {
42                  this.departures = departures;                  this.departures = departures;
43                  notifyDataSetChanged();                  notifyDataSetChanged();
44          }          }
# Line 35  public class DepartureListAdapter extend Line 51  public class DepartureListAdapter extend
51                          return 0;                          return 0;
52          }          }
53                    
54          public DepartureBean getDeparture(int position) {          public DepartureEntry getDeparture(int position) {
55                  return departures.get(position);                  return departures.get(position);
56          }          }
57    
# Line 51  public class DepartureListAdapter extend Line 67  public class DepartureListAdapter extend
67    
68          @Override          @Override
69          public View getView(int position, View convertView, ViewGroup parent) {          public View getView(int position, View convertView, ViewGroup parent) {
70                  DepartureBean station = departures.get(position);                  DepartureEntry station = departures.get(position);
71    
72                  View root = inflater.inflate(R.layout.departurerow , parent, false);                  View root = inflater.inflate(R.layout.departurerow , parent, false);
73                                    
74                  ((TextView) root.findViewById(R.id.Time)).setText(station.getTime());                  ((TextView) root.findViewById(R.id.Time)).setText(station.getTime());
75                  ((TextView) root.findViewById(R.id.Destination)).setText(station.getDestination());                  ((TextView) root.findViewById(R.id.Destination)).setText(station.getDestination());
76                                    
77                  if (station.getStatus().length() > 0 || station.getNote().length() > 0) {                  //Platform source'n TritInfo er ikke perfekt - så brug den ikke indtil videre
78                    //((TextView) root.findViewById(R.id.Platform)).setText(station.getPlatform());
79                    
80                    if ( (station.getStatus() != null && station.getStatus().length() > 0) || (station.getNote() != null && station.getNote().length() > 0) ) {
81                          ImageView image = (ImageView) root.findViewById(R.id.InfoIcon);                          ImageView image = (ImageView) root.findViewById(R.id.InfoIcon);
82                          image.setImageResource(R.drawable.info20);                          
83                            
84                            String status = (station.getStatus() != null) ? station.getStatus().toLowerCase() : "";
85                            String note = (station.getNote() != null) ? station.getNote().toLowerCase() : "";
86                            
87                            int iconID;
88                            if (status.indexOf("aflyst") > -1 || note.indexOf("aflyst") > -1 ) {
89                                    iconID = R.drawable.warn20;
90                            } else if (note.indexOf("kører kun til") > -1 || note.indexOf("afgår fra") > -1) { //If these strings are present, the train only covers part of the line
91                                    iconID = R.drawable.warnyellow20;
92                            } else {
93                                    iconID = R.drawable.info20;
94                            }
95                                    
96                            image.setImageResource( iconID );
97                  }                  }
98                                    
99                  ImageView typeIcon = (ImageView) root.findViewById(R.id.TypeIcon);                  ImageView typeIcon = (ImageView) root.findViewById(R.id.TypeIcon);
100                  String trainNumber = station.getTrainNumber() + " "; //Ugly hack: Append space do simplify icon selection code                  String trainNumber = station.getTrainNumber().trim();
101                    String trainParts[] = trainNumber.split(" ");
102                    String code = trainParts[0].toLowerCase();
103            
104                    if (showDetails) {
105                            root.findViewById(R.id.departureRow2).setVisibility( View.VISIBLE );                    
106                            ((TextView) root.findViewById(R.id.TrainNumber)).setText(trainNumber);
107                            ((TextView) root.findViewById(R.id.Origin)).setText( station.getOrigin() );
108                    }
109                                    
110                  if ( trainNumber.substring(0, 2).equalsIgnoreCase("ra")) { //ra = regionaltog arriva                  Integer imageId = imageMap.get(code);
111                          typeIcon.setImageResource(R.drawable.re);                  if (imageId != null) {
112                  } else if (  trainNumber.substring(0, 2).equalsIgnoreCase("re")) {                          typeIcon.setImageResource(imageId);
113                          typeIcon.setImageResource(R.drawable.re);                  } else {
                 } else if (  trainNumber.substring(0,1).equalsIgnoreCase("l")) {  
                         typeIcon.setImageResource(R.drawable.lyn);  
                 } else if (  trainNumber.substring(0,2).equalsIgnoreCase("ic")) {  
                         typeIcon.setImageResource(R.drawable.ic);  
                 } else if ( trainNumber.substring(0,2).equalsIgnoreCase("pp")) {  
                         typeIcon.setImageResource(R.drawable.pp);  
                 } else if ( trainNumber.substring(0,2).equalsIgnoreCase("ør")) {  
                         typeIcon.setImageResource(R.drawable.or);  
                 } else if ( trainNumber.equalsIgnoreCase("a ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_a); //S-Tog: A banen #00b5f1  
                 } else if ( trainNumber.equalsIgnoreCase("b ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_b); //S-Tog:B banen #5aba52  
                 } else if ( trainNumber.equalsIgnoreCase("bx ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_bx); //S-Tog:Bx banen #a4d17d  
                 } else if ( trainNumber.equalsIgnoreCase("c ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_c); //S-Tog:C banen #f89734  
                 } else if ( trainNumber.equalsIgnoreCase("e ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_e); //S-Tog:E banen #837eba  
                 } else if ( trainNumber.equalsIgnoreCase("f ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_f); //S-Tog:F banen #ffc32d  
                 } else if ( trainNumber.equalsIgnoreCase("h ") ) {  
                         typeIcon.setImageResource(R.drawable.stog_h); //S-Tog:H banen #f05737  
                 }  else {  
114                          typeIcon.setImageResource(R.drawable.unknown);                          typeIcon.setImageResource(R.drawable.unknown);
115                  }                  }
                 //Mangler: SJ=Sverige?, EC,        
                   
                   
116                                    
117                  return root;                  return root;
118          }          }
119            
120            //TODO: all these traintypes / icons should be explained somewhere
121            private static void buildImageMap() {
122                    imageMap.put("ec", R.drawable.ec); //EC = EuroCity
123                    // Missing FP ?
124                    imageMap.put("ic", R.drawable.ic); //IC = Intercity
125                    imageMap.put("il", R.drawable.il); //IntercityLyn Nonstop
126                    // Missing Int ?
127                    // Missing IR ?
128                    imageMap.put("l", R.drawable.lyn); //L =  Lyn
129                    imageMap.put("pp", R.drawable.pp); //PP = Privatbaner (eg. odderbanen eller LokalBanen)
130                    // Missing PX
131                    imageMap.put("ra", R.drawable.re); //RA = regionaltog arriva
132                    imageMap.put("re", R.drawable.re); //RE = Regionaltog          
133                    imageMap.put("ør", R.drawable.or); //ØR = Øresundstog
134                                                            
135                    imageMap.put("sj", R.drawable.sj); //SJ=Svenska Jernbaner -- not mentioned on bane.dk
136                    imageMap.put("ie", R.drawable.ie); //what's this ?? -- not mentioned on bane.dk
137                    
138                    //Missing IB ? -- not mentioned on bane.dk
139                    //Missing RX ? -- not mentioned on bane.dk
140    
141                    for (int i=0; i<=5; i++) {
142                            String add = (i==0) ? "" : "" + i;
143                    
144                            imageMap.put("a" + add, R.drawable.stog_a);   //S-Tog: A banen #00b5f1                          
145                            imageMap.put("b" + add, R.drawable.stog_b);   //S-Tog:B banen #5aba52
146                            imageMap.put("bx" + add, R.drawable.stog_bx); //S-Tog:Bx banen #a4d17d
147                            imageMap.put("c" + add, R.drawable.stog_c);   //S-Tog:C banen #f89734
148                            imageMap.put("e" + add, R.drawable.stog_e);   //S-Tog:E banen #837eba
149                            imageMap.put("f" + add, R.drawable.stog_f);   //S-Tog:F banen #ffc32d
150                            imageMap.put("h" + add, R.drawable.stog_h);   //S-Tog:H banen #f05737
151                    }
152    
153    
154            }
155    
156  }  }

Legend:
Removed from v.343  
changed lines
  Added in v.1963

  ViewVC Help
Powered by ViewVC 1.1.20