package com.mutu.mapapi.search.overlays; import com.mutu.mapapi.api.IGeoPoint; import com.mutu.mapapi.views.MapView; import com.mutu.mapapi.views.MapView.Projection; import com.mutu.mapapi.views.overlay.Overlay; import android.content.Context; import android.graphics.Canvas; import android.view.MotionEvent; /** * Empty overlay than can be used to detect events on the map, * and to throw them to a MapEventsReceiver. * @see MapEventsReceiver * @author M.Kergall */ public class MapEventsOverlay extends Overlay { private MapEventsReceiver mReceiver; /** * @param ctx the context * @param receiver the object that will receive/handle the events. * It must implement MapEventsReceiver interface. */ public MapEventsOverlay(Context ctx, MapEventsReceiver receiver) { super(ctx); mReceiver = receiver; } @Override protected void draw(Canvas c, MapView osmv, boolean shadow) { //Nothing to draw } @Override public boolean onSingleTapUp(MotionEvent e, MapView mapView){ Projection proj = mapView.getProjection(); IGeoPoint p = proj.fromPixels(e.getX(), e.getY()); return mReceiver.singleTapUpHelper(p); } @Override public boolean onLongPress(MotionEvent e, MapView mapView) { Projection proj = mapView.getProjection(); IGeoPoint p = proj.fromPixels(e.getX(), e.getY()); //throw event to the receiver: return mReceiver.longPressHelper(p); } }