package net.osmand.plus.parkingpoint;
import android.graphics.drawable.Drawable;
import net.osmand.data.PointDescription;
import net.osmand.plus.OsmandPlugin;
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.util.Algorithms;
public class ParkingPositionMenuController extends MenuController {
private ParkingPositionPlugin plugin;
private String parkingDescription = "";
public ParkingPositionMenuController(MapActivity mapActivity, PointDescription pointDescription) {
super(new MenuBuilder(mapActivity), pointDescription, mapActivity);
plugin = OsmandPlugin.getPlugin(ParkingPositionPlugin.class);
if (plugin != null) {
buildParkingDescription(mapActivity);
}
leftTitleButtonController = new TitleButtonController() {
@Override
public void buttonPressed() {
if (plugin != null) {
plugin.showDeleteDialog(getMapActivity());
}
}
};
leftTitleButtonController.caption = getMapActivity().getString(R.string.shared_string_delete);
leftTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark;
}
private void buildParkingDescription(MapActivity mapActivity) {
StringBuilder sb = new StringBuilder();
sb.append(plugin.getParkingStartDesc(mapActivity));
String leftDesc = plugin.getParkingLeftDesc(mapActivity);
if (!Algorithms.isEmpty(leftDesc)) {
sb.append("\n").append(leftDesc);
}
parkingDescription = sb.toString();
}
@Override
protected void setObject(Object object) {
if (plugin != null) {
buildParkingDescription(getMapActivity());
}
}
@Override
protected Object getObject() {
return getLatLon();
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN;
}
@Override
public boolean needTypeStr() {
return !Algorithms.isEmpty(parkingDescription);
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override
public Drawable getLeftIcon() {
return getIcon(R.drawable.ic_action_parking_dark, R.color.map_widget_blue);
}
@Override
public String getTypeStr() {
return parkingDescription;
}
@Override
public boolean needStreetName() {
return false;
}
}