package org.muxe.advancedtouristmap.overlay; import org.mapsforge.android.maps.GeoPoint; import org.mapsforge.poi.PointOfInterest; import org.muxe.advancedtouristmap.PositionInfo; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; public class PoiOverlayItem extends GenericOverlayItem { private PointOfInterest poi; public PoiOverlayItem(PointOfInterest poi) { super(); this.setPoi(poi); } public PoiOverlayItem(PointOfInterest poi, String title, String snippet, Drawable marker) { super(new GeoPoint(poi.getLatitude(), poi.getLongitude()), title, snippet, marker); this.setPoi(poi); } public PoiOverlayItem(PointOfInterest poi, String title, String snippet) { super(new GeoPoint(poi.getLatitude(), poi.getLongitude()), title, snippet); this.setPoi(poi); } public void setPoi(PointOfInterest poi) { this.poi = poi; } public PointOfInterest getPoi() { return this.poi; } @Override public void onTap(final Context context) { Builder builder = new AlertDialog.Builder(context); builder.setIcon(android.R.drawable.ic_menu_info_details); builder.setTitle(this.getTitle()); builder.setMessage(this.getSnippet()); builder.setPositiveButton("OK", null); builder.setNeutralButton("Info", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { context.startActivity(new Intent(context, PositionInfo.class) .putExtra(PositionInfo.LATITUDE_EXTRA, poi.getLatitude()).putExtra( PositionInfo.LONGITUDE_EXTRA, poi.getLongitude())); } }); builder.show(); } }