package net.osmand.plus.mapcontextmenu.controllers; import android.graphics.drawable.Drawable; import net.osmand.data.PointDescription; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.search.SearchHistoryFragment; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.mapillary.MapillaryPlugin; import net.osmand.util.Algorithms; public class PointDescriptionMenuController extends MenuController { private boolean hasTypeInDescription; public PointDescriptionMenuController(MapActivity mapActivity, final PointDescription pointDescription) { super(new MenuBuilder(mapActivity), pointDescription, mapActivity); builder.setShowNearestWiki(true); initData(); } private void initData() { hasTypeInDescription = !Algorithms.isEmpty(getPointDescription().getTypeName()); } @Override protected void setObject(Object object) { initData(); } @Override protected Object getObject() { return null; } @Override public boolean displayStreetNameInTitle() { return true; } @Override public boolean displayDistanceDirection() { return true; } @Override public Drawable getLeftIcon() { return getIcon(SearchHistoryFragment.getItemIcon(getPointDescription())); } @Override public Drawable getSecondLineTypeIcon() { if (hasTypeInDescription) { return getIcon(R.drawable.ic_small_group); } else { return null; } } @Override public String getTypeStr() { if (hasTypeInDescription) { return getPointDescription().getTypeName(); } else { return ""; } } @Override public String getCommonTypeStr() { return getMapActivity().getString(R.string.shared_string_location); } @Override public boolean needStreetName() { return !getPointDescription().isAddress(); } }