Fix ui search route
This commit is contained in:
parent
a4d3ca4576
commit
655ab8c467
4 changed files with 42 additions and 24 deletions
|
@ -450,6 +450,9 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
||||||
}
|
}
|
||||||
|
|
||||||
private void acquireMenuController() {
|
private void acquireMenuController() {
|
||||||
|
if(menuController != null) {
|
||||||
|
menuController.onAcquireNewController(pointDescription, object);
|
||||||
|
}
|
||||||
menuController = MenuController.getMenuController(mapActivity, pointDescription, object, MenuType.STANDARD);
|
menuController = MenuController.getMenuController(mapActivity, pointDescription, object, MenuType.STANDARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -352,6 +352,11 @@ public abstract class MenuController extends BaseMenuController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onHide() {
|
public void onHide() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClose() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onAcquireNewController(PointDescription pointDescription2, Object object) {
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
import net.osmand.binary.OsmandOdb.TransportRouteStop;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
import net.osmand.data.TransportStop;
|
import net.osmand.data.TransportStop;
|
||||||
|
@ -76,11 +77,18 @@ public class TransportRouteController extends MenuController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHide() {
|
public void onClose() {
|
||||||
super.onHide();
|
super.onHide();
|
||||||
TransportStopsLayer stopsLayer = getMapActivity().getMapLayers().getTransportStopsLayer();
|
TransportStopsLayer stopsLayer = getMapActivity().getMapLayers().getTransportStopsLayer();
|
||||||
stopsLayer.setRoute(null);
|
stopsLayer.setRoute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onAcquireNewController(PointDescription pointDescription, Object object) {
|
||||||
|
if(object instanceof TransportRouteStop) {
|
||||||
|
TransportStopsLayer stopsLayer = getMapActivity().getMapLayers().getTransportStopsLayer();
|
||||||
|
stopsLayer.setRoute(null);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, final LatLon latLon) {
|
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, final LatLon latLon) {
|
||||||
|
@ -89,8 +97,8 @@ public class TransportRouteController extends MenuController {
|
||||||
boolean useEnglishNames = getMapActivity().getMyApplication().getSettings().usingEnglishNames();
|
boolean useEnglishNames = getMapActivity().getMyApplication().getSettings().usingEnglishNames();
|
||||||
for (final TransportStop stop : stops) {
|
for (final TransportStop stop : stops) {
|
||||||
final String name = useEnglishNames ? stop.getEnName(true) : stop.getName();
|
final String name = useEnglishNames ? stop.getEnName(true) : stop.getName();
|
||||||
addPlainMenuItem(
|
boolean currentStop = stop.getName().equals(transportStop.stop.getName());
|
||||||
stop == transportStop.stop ? R.drawable.ic_action_marker_dark :
|
addPlainMenuItem(currentStop? R.drawable.ic_action_marker_dark :
|
||||||
(transportStop.type == null ? R.drawable.mx_route_bus_ref : transportStop.type.getResourceId()),
|
(transportStop.type == null ? R.drawable.mx_route_bus_ref : transportStop.type.getResourceId()),
|
||||||
name , false, false, new OnClickListener() {
|
name , false, false, new OnClickListener() {
|
||||||
|
|
||||||
|
|
|
@ -164,26 +164,7 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa
|
||||||
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tb,
|
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tb,
|
||||||
DrawSettings settings) {
|
DrawSettings settings) {
|
||||||
if (tb.getZoom() >= startZoom) {
|
if (tb.getZoom() >= startZoom) {
|
||||||
data.queryNewData(tb);;
|
data.queryNewData(tb);
|
||||||
float iconSize = stopBus.getWidth() * 3 / 2.5f;
|
|
||||||
QuadTree<QuadRect> boundIntersections = initBoundIntersections(tb);
|
|
||||||
List<TransportStop> fullObjects = new ArrayList<>();
|
|
||||||
for (TransportStop o : data.getResults()) {
|
|
||||||
float x = tb.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
|
||||||
float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
|
||||||
|
|
||||||
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
|
||||||
canvas.drawBitmap(stopSmall, x - stopSmall.getWidth() / 2, y - stopSmall.getHeight() / 2, paintIcon);
|
|
||||||
} else {
|
|
||||||
fullObjects.add(o);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (TransportStop o : fullObjects) {
|
|
||||||
float x = tb.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
|
||||||
float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
|
||||||
Bitmap b = stopBus;
|
|
||||||
canvas.drawBitmap(b, x - b.getWidth() / 2, y - b.getHeight() / 2, paintIcon);
|
|
||||||
}
|
|
||||||
if(route != null) {
|
if(route != null) {
|
||||||
attrs.updatePaints(view, settings, tb);
|
attrs.updatePaints(view, settings, tb);
|
||||||
canvas.rotate(-tb.getRotate(), tb.getCenterPixelX(), tb.getCenterPixelY());
|
canvas.rotate(-tb.getRotate(), tb.getCenterPixelX(), tb.getCenterPixelY());
|
||||||
|
@ -208,6 +189,27 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float iconSize = stopBus.getWidth() * 3 / 2.5f;
|
||||||
|
QuadTree<QuadRect> boundIntersections = initBoundIntersections(tb);
|
||||||
|
List<TransportStop> fullObjects = new ArrayList<>();
|
||||||
|
for (TransportStop o : data.getResults()) {
|
||||||
|
float x = tb.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
||||||
|
float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
||||||
|
|
||||||
|
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
||||||
|
canvas.drawBitmap(stopSmall, x - stopSmall.getWidth() / 2, y - stopSmall.getHeight() / 2, paintIcon);
|
||||||
|
} else {
|
||||||
|
fullObjects.add(o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (TransportStop o : fullObjects) {
|
||||||
|
float x = tb.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
||||||
|
float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
|
||||||
|
Bitmap b = stopBus;
|
||||||
|
canvas.drawBitmap(b, x - b.getWidth() / 2, y - b.getHeight() / 2, paintIcon);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue