--- android/TrainInfo/src/dk/thoerup/traininfo/DepartureListAdapter.java 2009/10/29 11:48:28 485 +++ android/TrainInfo/src/dk/thoerup/traininfo/DepartureListAdapter.java 2009/10/29 12:51:12 486 @@ -1,6 +1,8 @@ package dk.thoerup.traininfo; +import java.util.HashMap; import java.util.List; +import java.util.Map; import android.content.Context; import android.view.LayoutInflater; @@ -15,11 +17,18 @@ private List departures; LayoutInflater inflater; Context context; + + static Map imageMap = new HashMap(); + static { + buildImageMap(); + } + public DepartureListAdapter(Context context) { super(); this.context = context; inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } public void setDepartures(List departures) { @@ -74,46 +83,38 @@ ImageView typeIcon = (ImageView) root.findViewById(R.id.TypeIcon); String trainNumber = station.getTrainNumber().trim(); - String code = trainNumber.split(" ")[0]; - - - - if ( code.equalsIgnoreCase("ra")) { //RA = regionaltog arriva - typeIcon.setImageResource(R.drawable.re); - } else if ( code.equalsIgnoreCase("re")) { //RE=Regionaltog - typeIcon.setImageResource(R.drawable.re); - } else if ( code.equalsIgnoreCase("l")) { //L=Lyn - typeIcon.setImageResource(R.drawable.lyn); - } else if ( code.equalsIgnoreCase("ic")) { // IC=Intercity - typeIcon.setImageResource(R.drawable.ic); - } else if ( code.equalsIgnoreCase("pp")) { // PP=Privatbaner (eg. odderbanen eller LokalBanen) - typeIcon.setImageResource(R.drawable.pp); - } else if ( code.equalsIgnoreCase("ør")) { // ØR=Øresundstog - typeIcon.setImageResource(R.drawable.or); - } else if ( code.equalsIgnoreCase("ec")) { // EC=EuroCity - typeIcon.setImageResource(R.drawable.ec); - } else if ( code.equalsIgnoreCase("sj")) { // SJ=Svenska Jernbaner - typeIcon.setImageResource(R.drawable.sj); - } else if ( code.equalsIgnoreCase("a") ) { - typeIcon.setImageResource(R.drawable.stog_a); //S-Tog: A banen #00b5f1 - } else if ( code.equalsIgnoreCase("b") ) { - typeIcon.setImageResource(R.drawable.stog_b); //S-Tog:B banen #5aba52 - } else if ( code.equalsIgnoreCase("bx") ) { - typeIcon.setImageResource(R.drawable.stog_bx); //S-Tog:Bx banen #a4d17d - } else if ( code.equalsIgnoreCase("c") ) { - typeIcon.setImageResource(R.drawable.stog_c); //S-Tog:C banen #f89734 - } else if ( code.equalsIgnoreCase("e") ) { - typeIcon.setImageResource(R.drawable.stog_e); //S-Tog:E banen #837eba - } else if ( code.equalsIgnoreCase("f") ) { - typeIcon.setImageResource(R.drawable.stog_f); //S-Tog:F banen #ffc32d - } else if ( code.equalsIgnoreCase("h") ) { - typeIcon.setImageResource(R.drawable.stog_h); //S-Tog:H banen #f05737 - } else { + String code = trainNumber.split(" ")[0].toLowerCase(); + + Integer imageId = imageMap.get(code); + if (imageId != null) { + typeIcon.setImageResource(imageId); + } else { typeIcon.setImageResource(R.drawable.unknown); - } - + } return root; } + + private static void buildImageMap() { + imageMap.put("ra", R.drawable.re); //RA = regionaltog arriva + imageMap.put("re", R.drawable.re); //RE = Regionaltog + imageMap.put("l", R.drawable.lyn); //L = Lyn + imageMap.put("ic", R.drawable.ic); //IC = Intercity + imageMap.put("pp", R.drawable.pp); //PP = Privatbaner (eg. odderbanen eller LokalBanen) + imageMap.put("ør", R.drawable.or); //ØR = Øresundstog + imageMap.put("ec", R.drawable.ec); //EC = EuroCity + imageMap.put("sj", R.drawable.sj); // SJ=Svenska Jernbaner + + imageMap.put("a", R.drawable.stog_a); //S-Tog: A banen #00b5f1 + imageMap.put("b", R.drawable.stog_b); //S-Tog:B banen #5aba52 + imageMap.put("bx", R.drawable.stog_bx); //S-Tog:Bx banen #a4d17d + imageMap.put("c", R.drawable.stog_c); //S-Tog:C banen #f89734 + imageMap.put("e", R.drawable.stog_e); //S-Tog:E banen #837eba + imageMap.put("f", R.drawable.stog_f); //S-Tog:F banen #ffc32d + imageMap.put("h", R.drawable.stog_h); //S-Tog:H banen #f05737 + + + + } }