Made start and intermediates draggable

This commit is contained in:
PaulStets 2018-01-29 15:13:34 +02:00
parent adb1b92c34
commit f859aee1a3

View file

@ -227,8 +227,12 @@ public class PointNavigationLayer extends OsmandMapLayer implements
@Override
public boolean isObjectMovable(Object o) {
TargetPointsHelper targetPoints = map.getMyApplication().getTargetPointsHelper();
return o == targetPoints.getPointToNavigate();
TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper();
if (o != null && o instanceof TargetPoint) {
TargetPoint tp = (TargetPoint) o;
return targetPointsHelper.getAllPoints().contains(tp);
}
return false;
}
@Override
@ -238,8 +242,20 @@ public class PointNavigationLayer extends OsmandMapLayer implements
TargetPoint newTargetPoint = null;
if (o instanceof TargetPoint) {
TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper();
targetPointsHelper.navigateToPoint(position, true, -1, new PointDescription(PointDescription.POINT_TYPE_LOCATION, ""));
newTargetPoint = targetPointsHelper.getPointToNavigate();
TargetPoint oldPoint = (TargetPoint) o;
if (oldPoint.start) {
targetPointsHelper.setStartPoint(position, true, null);
newTargetPoint = targetPointsHelper.getPointToStart();
} else if (oldPoint == targetPointsHelper.getPointToNavigate()) {
targetPointsHelper.navigateToPoint(position, true, -1, null);
newTargetPoint = targetPointsHelper.getPointToNavigate();
} else if (oldPoint.intermediate) {
List<TargetPoint> points = targetPointsHelper.getIntermediatePointsWithTarget();
newTargetPoint = new TargetPoint(position,
new PointDescription(PointDescription.POINT_TYPE_LOCATION, ""));
points.set(points.indexOf(oldPoint), newTargetPoint);
targetPointsHelper.reorderAllTargetPoints(points, true);
}
result = true;
}
if (callback != null) {