package tof.cv.mpp.adapter;
import android.content.Context;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import tof.cv.mpp.R;
import tof.cv.mpp.Utils.Utils;
import tof.cv.mpp.bo.Alert;
import tof.cv.mpp.bo.Connection;
import tof.cv.mpp.bo.Occupancy;
public class ConnectionAdapter extends AbstractAdapter<Connection> {
public ConnectionAdapter(Context context, int textViewResourceId,
List<Connection> items) {
super(context, textViewResourceId, (ArrayList<Connection>) items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) super.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row_planner, null);
}
Connection conn = items.get(position);
if (conn != null) {
TextView delayD = (TextView) v.findViewById(R.id.delayD);
TextView delayA = (TextView) v.findViewById(R.id.delayA);
TextView departure = (TextView) v.findViewById(R.id.departure);
TextView arrival = (TextView) v.findViewById(R.id.arrival);
TextView triptime = (TextView) v.findViewById(R.id.duration);
TextView departtime = (TextView) v.findViewById(R.id.departtime);
TextView arrivaltime = (TextView) v.findViewById(R.id.arrivaltime);
ImageView occupancy = (ImageView) v.findViewById(R.id.occupancy);
TextView numberoftrains = (TextView) v
.findViewById(R.id.numberoftrains);
ImageView alert = (ImageView) v.findViewById(R.id.alert);
TextView alertText = (TextView) v.findViewById(R.id.alertText);
if (conn.getAlerts() != null && conn.getAlerts().getNumber() > 0) {
alert.setVisibility(View.VISIBLE);
alertText.setVisibility(View.VISIBLE);
String text = "";
if (conn.getAlerts().getAlertlist() != null)
for (Alert anAlert : conn.getAlerts().getAlertlist())
text += anAlert.getHeader() + " / ";
if (text.endsWith(" / "))
text = text.substring(0, text.length() - 3);
alertText.setText(text);
} else {
alert.setVisibility(View.GONE);
alertText.setVisibility(View.GONE);
}
String delayStr = " +"
+ (Integer.valueOf(conn.getDeparture().getDelay()) / 60)
+ "'";
if (!conn.getDeparture().getDelay().contentEquals("0"))
delayD.setText(delayStr);
else
delayD.setText("");
delayStr = " +"
+ (Integer.valueOf(conn.getArrival().getDelay()) / 60)
+ "'";
if (!conn.getArrival().getDelay().contentEquals("0"))
delayA.setText(delayStr);
else
delayA.setText("");
if (departure != null) {
departure
.setText((conn.getDeparture().getPlatform()
.contentEquals("") ? "" : getContext().getString(R.string.platform) + " " + conn
.getDeparture().getPlatform()));
if (conn.getDeparture().getPlatforminfo() != null && conn.getDeparture().getPlatforminfo().normal == 0)
departure
.setText("! " + departure.getText() + " !");
}
if (arrival != null) {
arrival.setText((conn.getArrival().getPlatform().contentEquals("") ? ""
: getContext().getString(R.string.platform) + " " + conn.getArrival().getPlatform()));
if (conn.getArrival().getPlatforminfo() != null && conn.getArrival().getPlatforminfo().normal == 0)
arrival
.setText("! " + arrival.getText() + " !");
}
if (triptime != null) {
triptime.setText(Html.fromHtml(
getContext().getString(R.string.route_planner_duration)
+ " <b>"
+ Utils.formatDate(conn.getDuration(), true, false)
+ "</b>"));
}
if (departtime != null) {
departtime.setText(conn.getDeparture().isCancelled() ? Html.fromHtml("<font color=\"red\">XXXX</font>") : Utils.formatDate(conn.getDeparture()
.getTime(), false, false));
}
if (arrivaltime != null) {
arrivaltime.setText(conn.getArrival().isCancelled() ? Html.fromHtml("<font color=\"red\">XXXX</font>") : Utils.formatDate(conn.getArrival()
.getTime(), false, false));
}
if (numberoftrains != null) { //
// Log.i("BETRAINS", "number" + conn.getVias()));
if (conn.getVias() != null)
numberoftrains.setText(Html.fromHtml(
getContext().getString(R.string.route_planner_num_trains)
+ " <b>"
+ (conn.getVias().getNumberOfVias() + 1)
+ "</b>"));
else
numberoftrains.setText(Html.fromHtml(Utils.getTrainId(conn
.getDeparture().getVehicle())));
}
if (conn.getOccupancy() != null) {
occupancy.setVisibility(View.VISIBLE);
switch (conn.getOccupancy().getName()) {
case Occupancy.UNKNOWN:
//occupancy.setImageResource(R.drawable.ic_occupancy_unknown);
occupancy.setVisibility(View.GONE);
break;
case Occupancy.HIGH:
occupancy.setImageResource(R.drawable.ic_occupancy_high);
break;
case Occupancy.MEDIUM:
occupancy.setImageResource(R.drawable.ic_occupancy_medium);
break;
case Occupancy.LOW:
occupancy.setImageResource(R.drawable.ic_occupancy_low);
break;
default:
occupancy.setVisibility(View.GONE);
}
}
else
occupancy.setVisibility(View.GONE);
}
return v;
}
}