Skip to content

Commit

Permalink
Merge pull request #349 from onaio/add-edit-boundary-mode
Browse files Browse the repository at this point in the history
Add editBoundaryMode on DrawingManager
  • Loading branch information
ekigamba authored Sep 29, 2020
2 parents 4d8c546 + aba68f2 commit 355b384
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions library/src/main/java/io/ona/kujaku/manager/DrawingManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public class DrawingManager {
private boolean drawingEnabled;

private FillBoundaryLayer currentFillBoundaryLayer;
private boolean editBoundaryMode;

/**
* Constructor
Expand Down Expand Up @@ -110,18 +111,21 @@ public void onAnnotationDragFinished(Circle circle) {
mapboxMap.addOnMapClickListener(new MapboxMap.OnMapClickListener() {
@Override
public boolean onMapClick(@NonNull LatLng point) {
final PointF pixel = mapboxMap.getProjection().toScreenLocation(point);
List<Feature> features = mapboxMap.queryRenderedFeatures(pixel, (Expression) null, CircleManager.ID_GEOJSON_LAYER);

if (features.size() == 0 && drawingEnabled) {
if (getCurrentKujakuCircle() != null) {
unsetCurrentCircleDraggable();
} else {
drawCircle(point);
}
if (!editBoundaryMode) {
final PointF pixel = mapboxMap.getProjection().toScreenLocation(point);
List<Feature> features = mapboxMap.queryRenderedFeatures(pixel, (Expression) null, CircleManager.ID_GEOJSON_LAYER);

if (onDrawingCircleClickListener != null) {
onDrawingCircleClickListener.onCircleNotClick(point);
if (features.size() == 0 && drawingEnabled) {
if (getCurrentKujakuCircle() != null) {
unsetCurrentCircleDraggable();
} else {
drawCircle(point);
}

if (onDrawingCircleClickListener != null) {
onDrawingCircleClickListener.onCircleNotClick(point);
}
}
}

Expand Down Expand Up @@ -234,6 +238,11 @@ public boolean startDrawing(@Nullable FillBoundaryLayer fillBoundaryLayer) {
return false;
}

public boolean editBoundary(@NonNull FillBoundaryLayer fillBoundaryLayer) {
editBoundaryMode = true;
return startDrawing(fillBoundaryLayer);
}

/**
* Start Drawing. A list of point can be passed to init the drawing.
*
Expand Down

0 comments on commit 355b384

Please sign in to comment.