Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
08b28c5a22
11 changed files with 31 additions and 29 deletions
|
@ -87,7 +87,7 @@ public class AudioNotesLayer extends OsmandMapLayer implements
|
||||||
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
||||||
if (contextMenuLayer.getMoveableObject() instanceof Recording) {
|
if (contextMenuLayer.getMoveableObject() instanceof Recording) {
|
||||||
Recording objectInMotion = (Recording) contextMenuLayer.getMoveableObject();
|
Recording objectInMotion = (Recording) contextMenuLayer.getMoveableObject();
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
drawRecording(canvas, objectInMotion, pf.x, pf.y);
|
drawRecording(canvas, objectInMotion, pf.x, pf.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,12 +190,8 @@ public class MapMultiSelectionMenu extends BaseMenuController {
|
||||||
selectedObjects.remove(menuObject.getObject());
|
selectedObjects.remove(menuObject.getObject());
|
||||||
}
|
}
|
||||||
hide();
|
hide();
|
||||||
Object o = menuObject.getObject();
|
getMapActivity().getMapLayers().getContextMenuLayer().showContextMenu(
|
||||||
getMapActivity().getMapLayers().getContextMenuLayer().tryInitSelectedObjectContextMenuProvider(o);
|
menuObject.getLatLon(), menuObject.getPointDescription(), menuObject.getObject());
|
||||||
getMapActivity().getMapViewTrackingUtilities().locationChanged(menuObject.getLatLon().getLatitude(),
|
|
||||||
menuObject.getLatLon().getLongitude(), this);
|
|
||||||
getMapActivity().getContextMenu()
|
|
||||||
.show(menuObject.getLatLon(), menuObject.getPointDescription(), menuObject.getObject());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearSelectedObjects() {
|
private void clearSelectedObjects() {
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC
|
||||||
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
||||||
if (contextMenuLayer.getMoveableObject() instanceof OsmPoint) {
|
if (contextMenuLayer.getMoveableObject() instanceof OsmPoint) {
|
||||||
OsmPoint objectInMotion = (OsmPoint) contextMenuLayer.getMoveableObject();
|
OsmPoint objectInMotion = (OsmPoint) contextMenuLayer.getMoveableObject();
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
drawPoint(canvas, objectInMotion, pf.x, pf.y);
|
drawPoint(canvas, objectInMotion, pf.x, pf.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class ParkingPositionLayer extends OsmandMapLayer implements
|
||||||
float locationX;
|
float locationX;
|
||||||
float locationY;
|
float locationY;
|
||||||
if (inMotion) {
|
if (inMotion) {
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
locationX = pf.x;
|
locationX = pf.x;
|
||||||
locationY = pf.y;
|
locationY = pf.y;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -182,7 +182,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public PointF getMoveableCenterPoint(RotatedTileBox tb) {
|
public PointF getMovableCenterPoint(RotatedTileBox tb) {
|
||||||
if (applyingMarkerLatLon != null) {
|
if (applyingMarkerLatLon != null) {
|
||||||
float x = tb.getPixXFromLatLon(applyingMarkerLatLon.getLatitude(), applyingMarkerLatLon.getLongitude());
|
float x = tb.getPixXFromLatLon(applyingMarkerLatLon.getLatitude(), applyingMarkerLatLon.getLongitude());
|
||||||
float y = tb.getPixYFromLatLon(applyingMarkerLatLon.getLatitude(), applyingMarkerLatLon.getLongitude());
|
float y = tb.getPixYFromLatLon(applyingMarkerLatLon.getLatitude(), applyingMarkerLatLon.getLongitude());
|
||||||
|
@ -232,7 +232,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
RotatedTileBox tileBox = activity.getMapView().getCurrentRotatedTileBox();
|
RotatedTileBox tileBox = activity.getMapView().getCurrentRotatedTileBox();
|
||||||
PointF newMarkerPosition = getMoveableCenterPoint(tileBox);
|
PointF newMarkerPosition = getMovableCenterPoint(tileBox);
|
||||||
final LatLon ll = tileBox.getLatLonFromPixel(newMarkerPosition.x, newMarkerPosition.y);
|
final LatLon ll = tileBox.getLatLonFromPixel(newMarkerPosition.x, newMarkerPosition.y);
|
||||||
applyingMarkerLatLon = ll;
|
applyingMarkerLatLon = ll;
|
||||||
|
|
||||||
|
@ -316,6 +316,23 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
return showContextMenu(new PointF(x, y), activity.getMapView().getCurrentRotatedTileBox(), showUnknownLocation);
|
return showContextMenu(new PointF(x, y), activity.getMapView().getCurrentRotatedTileBox(), showUnknownLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean showContextMenu(@NonNull LatLon latLon,
|
||||||
|
@NonNull PointDescription pointDescription,
|
||||||
|
@NonNull Object object) {
|
||||||
|
RotatedTileBox tileBox = activity.getMapView().getCurrentRotatedTileBox();
|
||||||
|
double latitude = latLon.getLatitude();
|
||||||
|
double longitude = latLon.getLongitude();
|
||||||
|
float x = tileBox.getPixXFromLatLon(latitude, longitude);
|
||||||
|
float y = tileBox.getPixYFromLatLon(latitude, longitude);
|
||||||
|
Map<Object, IContextMenuProvider> selectedObjects =
|
||||||
|
selectObjectsForContextMenu(tileBox, new PointF(x, y), false);
|
||||||
|
selectedObjectContextMenuProvider = selectedObjects.get(object);
|
||||||
|
hideVisibleMenues();
|
||||||
|
activity.getMapViewTrackingUtilities().setMapLinkedToLocation(false);
|
||||||
|
menu.show(latLon, pointDescription, object);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean showContextMenu(PointF point, RotatedTileBox tileBox, boolean showUnknownLocation) {
|
private boolean showContextMenu(PointF point, RotatedTileBox tileBox, boolean showUnknownLocation) {
|
||||||
Map<Object, IContextMenuProvider> selectedObjects = selectObjectsForContextMenu(tileBox, point, false);
|
Map<Object, IContextMenuProvider> selectedObjects = selectObjectsForContextMenu(tileBox, point, false);
|
||||||
if (selectedObjects.size() == 1) {
|
if (selectedObjects.size() == 1) {
|
||||||
|
@ -520,17 +537,6 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tryInitSelectedObjectContextMenuProvider(Object o) {
|
|
||||||
for (OsmandMapLayer osmandMapLayer : view.getLayers()) {
|
|
||||||
if (osmandMapLayer instanceof IMoveObjectProvider) {
|
|
||||||
if(((IMoveObjectProvider) osmandMapLayer).isObjectMovable(o)) {
|
|
||||||
selectedObjectContextMenuProvider = (IContextMenuProvider) osmandMapLayer;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IContextMenuProvider {
|
public interface IContextMenuProvider {
|
||||||
|
|
||||||
void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List<Object> o);
|
void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List<Object> o);
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
FavouritePoint objectInMotion = (FavouritePoint) contextMenuLayer.getMoveableObject();
|
FavouritePoint objectInMotion = (FavouritePoint) contextMenuLayer.getMoveableObject();
|
||||||
FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(),
|
FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(),
|
||||||
objectInMotion.getColor(), true);
|
objectInMotion.getColor(), true);
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
fid.drawBitmapInCenter(canvas, pf.x, pf.y);
|
fid.drawBitmapInCenter(canvas, pf.x, pf.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,7 +151,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex
|
||||||
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
||||||
if (contextMenuLayer.getMoveableObject() instanceof WptPt) {
|
if (contextMenuLayer.getMoveableObject() instanceof WptPt) {
|
||||||
WptPt objectInMotion = (WptPt) contextMenuLayer.getMoveableObject();
|
WptPt objectInMotion = (WptPt) contextMenuLayer.getMoveableObject();
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
SelectedGpxFile gpxFile = pointFileMap.get(objectInMotion);
|
SelectedGpxFile gpxFile = pointFileMap.get(objectInMotion);
|
||||||
if (gpxFile != null) {
|
if (gpxFile != null) {
|
||||||
drawBigPoint(canvas, objectInMotion, getFileColor(gpxFile), pf.x, pf.y);
|
drawBigPoint(canvas, objectInMotion, getFileColor(gpxFile), pf.x, pf.y);
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements
|
||||||
@Override
|
@Override
|
||||||
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
||||||
if (contextMenuLayer.getMoveableObject() instanceof RouteDataObject) {
|
if (contextMenuLayer.getMoveableObject() instanceof RouteDataObject) {
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
float left = pf.x - roadWorkIcon.getWidth() / 2;
|
float left = pf.x - roadWorkIcon.getWidth() / 2;
|
||||||
float top = pf.y - roadWorkIcon.getHeight();
|
float top = pf.y - roadWorkIcon.getHeight();
|
||||||
canvas.drawBitmap(roadWorkIcon, left, top, paint);
|
canvas.drawBitmap(roadWorkIcon, left, top, paint);
|
||||||
|
|
|
@ -308,7 +308,7 @@ public class MapMarkersLayer extends OsmandMapLayer implements IContextMenuProvi
|
||||||
if (contextMenuLayer.getMoveableObject() instanceof MapMarker) {
|
if (contextMenuLayer.getMoveableObject() instanceof MapMarker) {
|
||||||
MapMarker objectInMotion = (MapMarker) contextMenuLayer.getMoveableObject();
|
MapMarker objectInMotion = (MapMarker) contextMenuLayer.getMoveableObject();
|
||||||
Bitmap bitmap = getMapMarkerBitmap(objectInMotion.colorIndex);
|
Bitmap bitmap = getMapMarkerBitmap(objectInMotion.colorIndex);
|
||||||
PointF pf = contextMenuLayer.getMoveableCenterPoint(tileBox);
|
PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox);
|
||||||
int marginX = bitmap.getWidth() / 6;
|
int marginX = bitmap.getWidth() / 6;
|
||||||
int marginY = bitmap.getHeight();
|
int marginY = bitmap.getHeight();
|
||||||
float locationX = pf.x;
|
float locationX = pf.x;
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class MoveMarkerBottomSheetHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDraw(RotatedTileBox rt) {
|
public void onDraw(RotatedTileBox rt) {
|
||||||
PointF point = mContextMenuLayer.getMoveableCenterPoint(rt);
|
PointF point = mContextMenuLayer.getMovableCenterPoint(rt);
|
||||||
double lat = rt.getLatFromPixel(point.x, point.y);
|
double lat = rt.getLatFromPixel(point.x, point.y);
|
||||||
double lon = rt.getLonFromPixel(point.x, point.y);
|
double lon = rt.getLonFromPixel(point.x, point.y);
|
||||||
mDescription.setText(mContext.getString(R.string.lat_lon_pattern, lat, lon));
|
mDescription.setText(mContext.getString(R.string.lat_lon_pattern, lat, lon));
|
||||||
|
|
|
@ -150,7 +150,7 @@ public class PointNavigationLayer extends OsmandMapLayer implements
|
||||||
private float getPointX(RotatedTileBox tileBox, TargetPoint point) {
|
private float getPointX(RotatedTileBox tileBox, TargetPoint point) {
|
||||||
if (contextMenuLayer.getMoveableObject() != null
|
if (contextMenuLayer.getMoveableObject() != null
|
||||||
&& point == contextMenuLayer.getMoveableObject()) {
|
&& point == contextMenuLayer.getMoveableObject()) {
|
||||||
return contextMenuLayer.getMoveableCenterPoint(tileBox).x;
|
return contextMenuLayer.getMovableCenterPoint(tileBox).x;
|
||||||
} else {
|
} else {
|
||||||
return tileBox.getPixXFromLonNoRot(point.getLongitude());
|
return tileBox.getPixXFromLonNoRot(point.getLongitude());
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ public class PointNavigationLayer extends OsmandMapLayer implements
|
||||||
private float getPointY(RotatedTileBox tileBox, TargetPoint point) {
|
private float getPointY(RotatedTileBox tileBox, TargetPoint point) {
|
||||||
if (contextMenuLayer.getMoveableObject() != null
|
if (contextMenuLayer.getMoveableObject() != null
|
||||||
&& point == contextMenuLayer.getMoveableObject()) {
|
&& point == contextMenuLayer.getMoveableObject()) {
|
||||||
return contextMenuLayer.getMoveableCenterPoint(tileBox).y;
|
return contextMenuLayer.getMovableCenterPoint(tileBox).y;
|
||||||
} else {
|
} else {
|
||||||
return tileBox.getPixYFromLatNoRot(point.getLatitude());
|
return tileBox.getPixYFromLatNoRot(point.getLatitude());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue