Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add circle #37

Merged
merged 1 commit into from
Mar 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions android/src/main/java/com/mapbox/mapboxgl/CircleBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// This file is generated.

// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package com.mapbox.mapboxgl;

import com.mapbox.geojson.Point;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.plugins.annotation.Circle;
import com.mapbox.mapboxsdk.plugins.annotation.CircleManager;
import com.mapbox.mapboxsdk.plugins.annotation.CircleOptions;

class CircleBuilder implements CircleOptionsSink {
private final CircleManager circleManager;
private final CircleOptions circleOptions;

CircleBuilder(CircleManager circleManager) {
this.circleManager = circleManager;
this.circleOptions = new CircleOptions();
}

Circle build() {
return circleManager.create(circleOptions);
}

@Override
public void setCircleRadius(float circleRadius) {
circleOptions.withCircleRadius(circleRadius);
}

@Override
public void setCircleColor(String circleColor) {
circleOptions.withCircleColor(circleColor);
}

@Override
public void setCircleBlur(float circleBlur) {
circleOptions.withCircleBlur(circleBlur);
}

@Override
public void setCircleOpacity(float circleOpacity) {
circleOptions.withCircleOpacity(circleOpacity);
}

@Override
public void setCircleStrokeWidth(float circleStrokeWidth) {
circleOptions.withCircleStrokeWidth(circleStrokeWidth);
}

@Override
public void setCircleStrokeColor(String circleStrokeColor) {
circleOptions.withCircleStrokeColor(circleStrokeColor);
}

@Override
public void setCircleStrokeOpacity(float circleStrokeOpacity) {
circleOptions.withCircleStrokeOpacity(circleStrokeOpacity);
}

@Override
public void setGeometry(LatLng geometry) {
circleOptions.withGeometry(Point.fromLngLat(geometry.getLongitude(), geometry.getLatitude()));
}

@Override
public void setDraggable(boolean draggable) {
circleOptions.setDraggable(draggable);
}
}
87 changes: 87 additions & 0 deletions android/src/main/java/com/mapbox/mapboxgl/CircleController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
// This file is generated.

// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package com.mapbox.mapboxgl;

import android.graphics.Color;
import com.mapbox.geojson.Point;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.plugins.annotation.Circle;
import com.mapbox.mapboxsdk.plugins.annotation.CircleManager;

/** Controller of a single Circle on the map. */
class CircleController implements CircleOptionsSink {
private final Circle circle;
private final OnCircleTappedListener onTappedListener;
private boolean consumeTapEvents;

CircleController(Circle circle, boolean consumeTapEvents, OnCircleTappedListener onTappedListener) {
this.circle = circle;
this.consumeTapEvents = consumeTapEvents;
this.onTappedListener = onTappedListener;
}

boolean onTap() {
if (onTappedListener != null) {
onTappedListener.onCircleTapped(circle);
}
return consumeTapEvents;
}

void remove(CircleManager circleManager) {
circleManager.delete(circle);
}

@Override
public void setCircleRadius(float circleRadius) {
circle.setCircleRadius(circleRadius);
}

@Override
public void setCircleColor(String circleColor) {
circle.setCircleColor(Color.parseColor(circleColor));
}

@Override
public void setCircleBlur(float circleBlur) {
circle.setCircleBlur(circleBlur);
}

@Override
public void setCircleOpacity(float circleOpacity) {
circle.setCircleOpacity(circleOpacity);
}

@Override
public void setCircleStrokeWidth(float circleStrokeWidth) {
circle.setCircleStrokeWidth(circleStrokeWidth);
}

@Override
public void setCircleStrokeColor(String circleStrokeColor) {
circle.setCircleStrokeColor(Color.parseColor(circleStrokeColor));
}

@Override
public void setCircleStrokeOpacity(float circleStrokeOpacity) {
circle.setCircleStrokeOpacity(circleStrokeOpacity);
}

@Override
public void setGeometry(LatLng geometry) {
circle.setGeometry(Point.fromLngLat(geometry.getLongitude(), geometry.getLatitude()));
}

@Override
public void setDraggable(boolean draggable) {
circle.setDraggable(draggable);
}

public void update(CircleManager circleManager) {
circleManager.update(circle);
}

}
31 changes: 31 additions & 0 deletions android/src/main/java/com/mapbox/mapboxgl/CircleOptionsSink.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// This file is generated.

// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package com.mapbox.mapboxgl;

import com.mapbox.mapboxsdk.geometry.LatLng;

/** Receiver of Circle configuration options. */
interface CircleOptionsSink {

void setCircleRadius(float circleRadius);

void setCircleColor(String circleColor);

void setCircleBlur(float circleBlur);

void setCircleOpacity(float circleOpacity);

void setCircleStrokeWidth(float circleStrokeWidth);

void setCircleStrokeColor(String circleStrokeColor);

void setCircleStrokeOpacity(float circleStrokeOpacity);

void setGeometry(LatLng geometry);

void setDraggable(boolean draggable);
}
50 changes: 40 additions & 10 deletions android/src/main/java/com/mapbox/mapboxgl/Convert.java
Original file line number Diff line number Diff line change
Expand Up @@ -241,32 +241,26 @@ static void interpretSymbolOptions(Object o, SymbolOptionsSink sink) {
final Map<?, ?> data = toMap(o);
final Object iconSize = data.get("iconSize");
if (iconSize != null) {
Logger.e(TAG, "setIconSize" + iconSize);
sink.setIconSize(toFloat(iconSize));
}
final Object iconImage = data.get("iconImage");
if (iconImage != null) {
Logger.e(TAG, "setIconImage" + iconImage);
sink.setIconImage(toString(iconImage));
}
final Object iconRotate = data.get("iconRotate");
if (iconRotate != null) {
Logger.e(TAG, "SetIconRotate" + iconRotate);
sink.setIconRotate(toFloat(iconRotate));
}
final Object iconOffset = data.get("iconOffset");
if (iconOffset != null) {
Logger.e(TAG, "SetIconOffset" + iconOffset);
sink.setIconOffset(new float[] {toFloat(toList(iconOffset).get(0)), toFloat(toList(iconOffset).get(1))});
}
final Object iconAnchor = data.get("iconAnchor");
if (iconAnchor != null) {
Logger.e(TAG, "SetIconAnchor" + iconAnchor);
sink.setIconAnchor(toString(iconAnchor));
}
final Object textField = data.get("textField");
if (textField != null) {
Logger.e(TAG, "SetTextField" + textField);
sink.setTextField(toString(textField));
}
final Object textSize = data.get("textSize");
Expand Down Expand Up @@ -303,7 +297,6 @@ static void interpretSymbolOptions(Object o, SymbolOptionsSink sink) {
}
final Object iconOpacity = data.get("iconOpacity");
if (iconOpacity != null) {
Logger.e(TAG, "SetIconOpactiy" + iconOpacity);
sink.setIconOpacity(toFloat(iconOpacity));
}
final Object iconColor = data.get("iconColor");
Expand Down Expand Up @@ -344,17 +337,54 @@ static void interpretSymbolOptions(Object o, SymbolOptionsSink sink) {
}
final Object geometry = data.get("geometry");
if (geometry != null) {
Logger.e(TAG, "SetGeometry");
sink.setGeometry(toLatLng(geometry));
}
final Object zIndex = data.get("zIndex");
if (zIndex != null) {
Logger.e(TAG, "SetZIndex");
sink.setZIndex(toInt(zIndex));
}
final Object draggable = data.get("draggable");
if (draggable != null) {
Logger.e(TAG, "SetDraggable");
sink.setDraggable(toBoolean(draggable));
}
}

static void interpretCircleOptions(Object o, CircleOptionsSink sink) {
final Map<?, ?> data = toMap(o);
final Object circleRadius = data.get("circleRadius");
if (circleRadius != null) {
sink.setCircleRadius(toFloat(circleRadius));
}
final Object circleColor = data.get("circleColor");
if (circleColor != null) {
sink.setCircleColor(toString(circleColor));
}
final Object circleBlur = data.get("circleBlur");
if (circleBlur != null) {
sink.setCircleBlur(toFloat(circleBlur));
}
final Object circleOpacity = data.get("circleOpacity");
if (circleOpacity != null) {
sink.setCircleOpacity(toFloat(circleOpacity));
}
final Object circleStrokeWidth = data.get("circleStrokeWidth");
if (circleStrokeWidth != null) {
sink.setCircleStrokeWidth(toFloat(circleStrokeWidth));
}
final Object circleStrokeColor = data.get("circleStrokeColor");
if (circleStrokeColor != null) {
sink.setCircleStrokeColor(toString(circleStrokeColor));
}
final Object circleStrokeOpacity = data.get("circleStrokeOpacity");
if (circleStrokeOpacity != null) {
sink.setCircleStrokeOpacity(toFloat(circleStrokeOpacity));
}
final Object geometry = data.get("geometry");
if (geometry != null) {
sink.setGeometry(toLatLng(geometry));
}
final Object draggable = data.get("draggable");
if (draggable != null) {
sink.setDraggable(toBoolean(draggable));
}
}
Expand Down
Loading