package de.andlabs.teleporter; import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class RideView extends RelativeLayout { private TextView dep; private TextView arr; private ImageView plugin; private TextView duration; private TextView price; private TextView minutes; private TextView hours; private TextView hours_label; public RideView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onFinishInflate() { super.onFinishInflate(); dep = (TextView) findViewById(R.id.dep); arr = (TextView) findViewById(R.id.arr); price = (TextView) findViewById(R.id.price); hours = (TextView) findViewById(R.id.hours); plugin = (ImageView) findViewById(R.id.plugIn); minutes = (TextView) findViewById(R.id.minutes); duration = (TextView) findViewById(R.id.duration); hours_label = (TextView) findViewById(R.id.hours_label); } public void setRide(Ride ride) { final long waitingTime; final long travelTime; if(ride.dep == null || ride.arr == null) { waitingTime = 0; travelTime = ride.duration / 60; dep.setText(new SimpleDateFormat("hh:mm").format(new Date())); arr.setText(new SimpleDateFormat("hh:mm").format(new Date(System.currentTimeMillis()+ride.duration))); } else { waitingTime = (int)(ride.dep.getTime()-System.currentTimeMillis())/60000; travelTime = (int) (ride.arr.getTime() - ride.dep.getTime()) / 60000; dep.setText(new SimpleDateFormat("hh:mm").format(ride.dep)); arr.setText(new SimpleDateFormat("hh:mm").format(ride.arr)); } // if (waitingTime < 100) { if (waitingTime < 60) { minutes.setText(String.valueOf(waitingTime)); minutes.setTextSize(46); hours.setVisibility(GONE); hours_label.setVisibility(GONE); } else if (waitingTime < 10*60) { hours.setText(String.valueOf((int)waitingTime/60)); hours.setVisibility(VISIBLE); hours_label.setVisibility(VISIBLE); minutes.setText(String.valueOf(waitingTime%60)); minutes.setTextSize(20); } else if (waitingTime < 100*60) { hours.setText(String.valueOf((int)waitingTime/60)); hours.setVisibility(VISIBLE); hours_label.setVisibility(VISIBLE); } if (travelTime < 60) duration.setText(travelTime+" min"); else if (travelTime < 24*60) duration.setText(((int)travelTime/60)+"h "+travelTime%60+"min"); else duration.setText("toooooo long!!!"); // plugin.setImageResource(ride.plugin); price.setText(String.valueOf(((int)ride.price/100))); int cents = ride.price%100; if (cents != 0) price.append(","+cents); switch (ride.mode) { case Ride.MODE_TELEPORTER: setBackgroundResource(R.drawable.mode_teleporter); break; case Ride.MODE_SKATEBOARD: setBackgroundResource(R.drawable.mode_sk8); break; case Ride.MODE_TRANSIT: setBackgroundResource(R.drawable.mode_transit); break; case Ride.MODE_FLIGHT: setBackgroundResource(R.drawable.mode_flight); break; case Ride.MODE_TRAIN: setBackgroundResource(R.drawable.mode_train); break; case Ride.MODE_WALK: setBackgroundResource(R.drawable.mode_walk); break; case Ride.MODE_BIKE: setBackgroundResource(R.drawable.mode_bike); break; case Ride.MODE_TAXI: setBackgroundResource(R.drawable.mode_taxi); break; case Ride.MODE_DRIVE: setBackgroundResource(R.drawable.mode_drive); break; case Ride.MODE_MFG: setBackgroundResource(R.drawable.mode_mfg); break; } } }