package net.osmand.plus.mapcontextmenu.controllers; import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import net.osmand.binary.RouteDataObject; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.routing.RoutingHelper; public class ImpassibleRoadsMenuController extends MenuController { private RouteDataObject route; public ImpassibleRoadsMenuController(final MapActivity mapActivity, PointDescription pointDescription, RouteDataObject route) { super(new MenuBuilder(mapActivity), pointDescription, mapActivity); this.route = route; final OsmandApplication app = mapActivity.getMyApplication(); rightTitleButtonController = new TitleButtonController() { @Override public void buttonPressed() { app.getAvoidSpecificRoads().removeImpassableRoad( ImpassibleRoadsMenuController.this.route); RoutingHelper rh = app.getRoutingHelper(); if (rh.isRouteCalculated() || rh.isRouteBeingCalculated()) { rh.recalculateRouteDueToSettingsChange(); } getMapActivity().getContextMenu().close(); } }; rightTitleButtonController.caption = getMapActivity().getString(R.string.shared_string_remove); rightTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; } @Override protected void setObject(Object object) { route = (RouteDataObject) object; } @Override protected Object getObject() { return route; } @Override public String getTypeStr() { return getMapActivity().getString(R.string.road_blocked); } @Override public Drawable getLeftIcon() { return ContextCompat.getDrawable(getMapActivity(), R.drawable.map_pin_avoid_road); } }