Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2016-07-29 17:52:58 +02:00
commit e79555be99
4 changed files with 108 additions and 6 deletions

View file

@ -39,6 +39,7 @@ public class PointDescription {
public static final String POINT_TYPE_GPX_ITEM = "gpx_item"; public static final String POINT_TYPE_GPX_ITEM = "gpx_item";
public static final String POINT_TYPE_WORLD_REGION_SHOW_ON_MAP = "world_region_show_on_map"; public static final String POINT_TYPE_WORLD_REGION_SHOW_ON_MAP = "world_region_show_on_map";
public static final String POINT_TYPE_BLOCKED_ROAD = "blocked_road"; public static final String POINT_TYPE_BLOCKED_ROAD = "blocked_road";
public static final String POINT_TYPE_TRANSPORT_ROUTE = "transport_route";
public static final PointDescription LOCATION_POINT = new PointDescription(POINT_TYPE_LOCATION, ""); public static final PointDescription LOCATION_POINT = new PointDescription(POINT_TYPE_LOCATION, "");

View file

@ -4,7 +4,6 @@ import android.graphics.drawable.Drawable;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import net.osmand.binary.RouteDataObject; import net.osmand.binary.RouteDataObject;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.data.FavouritePoint; import net.osmand.data.FavouritePoint;
@ -31,7 +30,9 @@ import net.osmand.plus.mapcontextmenu.controllers.MapMarkerMenuController;
import net.osmand.plus.mapcontextmenu.controllers.MyLocationMenuController; import net.osmand.plus.mapcontextmenu.controllers.MyLocationMenuController;
import net.osmand.plus.mapcontextmenu.controllers.PointDescriptionMenuController; import net.osmand.plus.mapcontextmenu.controllers.PointDescriptionMenuController;
import net.osmand.plus.mapcontextmenu.controllers.TargetPointMenuController; import net.osmand.plus.mapcontextmenu.controllers.TargetPointMenuController;
import net.osmand.plus.mapcontextmenu.controllers.TransportRouteController;
import net.osmand.plus.mapcontextmenu.controllers.TransportStopController; import net.osmand.plus.mapcontextmenu.controllers.TransportStopController;
import net.osmand.plus.mapcontextmenu.controllers.TransportStopController.TransportStopRoute;
import net.osmand.plus.mapcontextmenu.controllers.WptPtMenuController; import net.osmand.plus.mapcontextmenu.controllers.WptPtMenuController;
import net.osmand.plus.mapcontextmenu.other.ShareMenu; import net.osmand.plus.mapcontextmenu.other.ShareMenu;
import net.osmand.plus.osmedit.EditPOIMenuController; import net.osmand.plus.osmedit.EditPOIMenuController;
@ -108,6 +109,8 @@ public abstract class MenuController extends BaseMenuController {
menuController = new GpxItemMenuController(app, mapActivity, pointDescription, (GpxDisplayItem) object); menuController = new GpxItemMenuController(app, mapActivity, pointDescription, (GpxDisplayItem) object);
} else if (object instanceof MapMarker) { } else if (object instanceof MapMarker) {
menuController = new MapMarkerMenuController(app, mapActivity, pointDescription, (MapMarker) object); menuController = new MapMarkerMenuController(app, mapActivity, pointDescription, (MapMarker) object);
} else if (object instanceof TransportStopRoute) {
menuController = new TransportRouteController(app, mapActivity, pointDescription, (TransportStopRoute) object);
} else if (object instanceof TransportStop) { } else if (object instanceof TransportStop) {
menuController = new TransportStopController(app, mapActivity, pointDescription, (TransportStop) object); menuController = new TransportStopController(app, mapActivity, pointDescription, (TransportStop) object);
} else if (object instanceof LatLon) { } else if (object instanceof LatLon) {

View file

@ -0,0 +1,84 @@
package net.osmand.plus.mapcontextmenu.controllers;
import java.util.List;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.TransportStop;
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.mapcontextmenu.controllers.TransportStopController.TransportStopRoute;
public class TransportRouteController extends MenuController {
private TransportStopRoute transportStop;
public TransportRouteController(OsmandApplication app, MapActivity mapActivity, PointDescription pointDescription,
TransportStopRoute transportStop) {
super(new MenuBuilder(app), pointDescription, mapActivity);
this.transportStop = transportStop;
}
@Override
protected void setObject(Object object) {
if (object instanceof TransportStopRoute) {
this.transportStop = (TransportStopRoute) object;
}
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
}
@Override
public int getLeftIconId() {
return this.transportStop.type.getTopResourceId();
}
@Override
public boolean needStreetName() {
return false;
}
@Override
public boolean displayDistanceDirection() {
return false;
}
@Override
public boolean fabVisible() {
return false;
}
@Override
public boolean buttonsVisible() {
return false;
}
@Override
public boolean displayStreetNameInTitle() {
return super.displayStreetNameInTitle();
}
@Override
public String getTypeStr() {
return getPointDescription().getTypeName();
}
@Override
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, LatLon latLon) {
super.addPlainMenuItems(typeStr, pointDescription, latLon);
List<TransportStop> stops = transportStop.route.getForwardStops();
boolean useEnglishNames = getMapActivity().getMyApplication().getSettings().usingEnglishNames();
for (TransportStop stop : stops) {
addPlainMenuItem(
stop == transportStop.stop ? R.drawable.ic_action_marker_dark : transportStop.type.getResourceId(),
useEnglishNames ? stop.getEnName(true) : stop.getName(), false, false, null);
}
}
}

View file

@ -7,6 +7,7 @@ import net.osmand.data.TransportStop;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuBuilder;
import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.mapcontextmenu.MenuController;
import net.osmand.plus.resources.TransportIndexRepository; import net.osmand.plus.resources.TransportIndexRepository;
@ -15,6 +16,9 @@ import net.osmand.util.Algorithms;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import android.view.View;
import android.view.View.OnClickListener;
public class TransportStopController extends MenuController { public class TransportStopController extends MenuController {
public enum TransportStopType { public enum TransportStopType {
@ -111,12 +115,20 @@ public class TransportStopController extends MenuController {
} }
@Override @Override
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, LatLon latLon) { public void addPlainMenuItems(String typeStr, PointDescription pointDescription, final LatLon latLon) {
for (TransportStopRoute r : routes) { for (final TransportStopRoute r : routes) {
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View arg0) {
MapContextMenu mm = getMapActivity().getContextMenu();
PointDescription pd = new PointDescription(PointDescription.POINT_TYPE_TRANSPORT_ROUTE, r.desc);
mm.show(latLon, pd, r);
}
};
if (r.type == null) { if (r.type == null) {
addPlainMenuItem(R.drawable.ic_action_polygom_dark, r.desc, false, false, null); addPlainMenuItem(R.drawable.ic_action_polygom_dark, r.desc, false, false, listener );
} else { } else {
addPlainMenuItem(r.type.getResourceId(), r.desc, false, false, null); addPlainMenuItem(r.type.getResourceId(), r.desc, false, false, listener);
} }
} }
super.addPlainMenuItems(typeStr, pointDescription, latLon); super.addPlainMenuItems(typeStr, pointDescription, latLon);
@ -142,6 +154,7 @@ public class TransportStopController extends MenuController {
} }
r.desc = rs.getRef() + " " + (useEnglishNames ? rs.getName() : rs.getEnName(true)); r.desc = rs.getRef() + " " + (useEnglishNames ? rs.getName() : rs.getEnName(true));
r.route = rs; r.route = rs;
r.stop = transportStop;
this.routes.add(r); this.routes.add(r);
} }
} }
@ -149,9 +162,10 @@ public class TransportStopController extends MenuController {
} }
} }
private class TransportStopRoute { public static class TransportStopRoute {
public TransportStopType type; public TransportStopType type;
public String desc; public String desc;
public TransportRoute route; public TransportRoute route;
public TransportStop stop;
} }
} }