package com.papagiannis.tuberun.overlays;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
import com.google.android.gms.maps.model.Marker;
import com.papagiannis.tuberun.DeparturesActivity;
import com.papagiannis.tuberun.LinePresentation;
import com.papagiannis.tuberun.LineType;
import com.papagiannis.tuberun.R;
import com.papagiannis.tuberun.Station;
import com.papagiannis.tuberun.StationDetails;
public class TubeMarkerClickListener implements OnMarkerClickListener {
private Context context;
public TubeMarkerClickListener(Context context) {
super();
this.context = context;
}
@Override
public boolean onMarkerClick(final Marker marker) {
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(marker.getTitle());
dialog.setIcon(R.drawable.tube);
StringBuffer sb = new StringBuffer();
Iterable<LineType> lines = StationDetails
.FetchLinesForStation(marker.getTitle());
for (LineType lt : lines) {
sb.append(LinePresentation.getStringRespresentation(lt));
if (lt != LineType.DLR)
sb.append(" Line");
sb.append("\n");
}
if (sb.length() > 0 && sb.charAt(sb.length() - 1) == '\n')
sb.deleteCharAt(sb.length() - 1);
dialog.setMessage(sb.toString());
dialog.setPositiveButton("Departures",
new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
showTubeDepartures(marker.getSnippet(),
marker.getTitle());
}
});
dialog.setNegativeButton("Cancel", null);
dialog.show();
return true;
}
public void showTubeDepartures(String code, String name) {
Intent i = new Intent(context, DeparturesActivity.class);
Station s = new Station(name, code);
s.addLineTypeForDepartures(LineType.ALL);
i.putExtra("type", "station");
i.putExtra("station", s);
context.startActivity(i);
}
}