package net.osmand.plus.mapcontextmenu.controllers; import android.graphics.drawable.Drawable; import android.view.View; import net.osmand.aidl.maplayer.point.AMapPoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.views.TransportStopsLayer; import net.osmand.util.Algorithms; public class AMapPointMenuController extends MenuController { private AMapPoint point; public AMapPointMenuController(MapActivity mapActivity, PointDescription pointDescription, final AMapPoint point) { super(new MenuBuilder(mapActivity), pointDescription, mapActivity); this.point = point; } @Override protected void setObject(Object object) { if (object instanceof AMapPoint) { this.point = (AMapPoint) object; } } @Override protected Object getObject() { return point; } @Override public boolean displayDistanceDirection() { return true; } @Override public void addPlainMenuItems(String typeStr, PointDescription pointDescription, final LatLon latLon) { for (String detail : point.getDetails()) { builder.addPlainMenuItem(R.drawable.ic_action_info_dark, detail, true, false, null); } super.addPlainMenuItems(typeStr, pointDescription, latLon); } @Override public Drawable getLeftIcon() { return getIcon(R.drawable.ic_action_get_my_location); } @Override public Drawable getSecondLineTypeIcon() { if (!Algorithms.isEmpty(point.getShortName())) { return getIcon(R.drawable.ic_small_group); } else { return null; } } @Override public String getTypeStr() { if (!Algorithms.isEmpty(point.getTypeName())) { return point.getTypeName(); } else { return ""; } } @Override public String getCommonTypeStr() { return getMapActivity().getString(R.string.shared_string_location); } @Override public boolean needStreetName() { return false; } }