Skip to content

Commit

Permalink
[annotation] - fix feature.getId crash, features are converted asynch…
Browse files Browse the repository at this point in the history
…ronous by core
  • Loading branch information
tobrun committed Dec 2, 2018
1 parent af4899c commit 42d2f69
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.mapbox.mapboxsdk.plugins.testapp.activity.annotation;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.graphics.Color;
import android.graphics.PointF;
Expand All @@ -13,7 +11,6 @@
import android.view.animation.LinearInterpolator;
import android.widget.TextView;
import android.widget.Toast;

import com.mapbox.geojson.FeatureCollection;
import com.mapbox.geojson.Point;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
Expand All @@ -35,10 +32,7 @@
import java.util.Locale;
import java.util.Random;

import static com.mapbox.mapboxsdk.style.expressions.Expression.eq;
import static com.mapbox.mapboxsdk.style.expressions.Expression.get;
import static com.mapbox.mapboxsdk.style.expressions.Expression.not;
import static com.mapbox.mapboxsdk.style.expressions.Expression.toNumber;
import static com.mapbox.mapboxsdk.style.expressions.Expression.*;

/**
* Activity showcasing adding symbols using the annotation plugin
Expand All @@ -51,6 +45,7 @@ public class SymbolActivity extends AppCompatActivity {
private static final String MAKI_ICON_CIRCLE = "circle-15";

private final Random random = new Random();
private final List<ValueAnimator> animators = new ArrayList<>();

private MapView mapView;
private SymbolManager symbolManager;
Expand Down Expand Up @@ -204,8 +199,7 @@ private void resetSymbol() {
symbolManager.update(symbol);
}


private void easeSymbol(com.mapbox.mapboxsdk.plugins.annotation.Symbol symbol, final LatLng location, final float rotation) {
private void easeSymbol(Symbol symbol, final LatLng location, final float rotation) {
final LatLng originalPosition = symbol.getLatLng();
final float originalRotation = symbol.getIconRotate();
final boolean changeLocation = originalPosition.distanceTo(location) > 0;
Expand Down Expand Up @@ -234,16 +228,9 @@ private void easeSymbol(com.mapbox.mapboxsdk.plugins.annotation.Symbol symbol, f

symbolManager.update(symbol);
});
moveSymbol.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
resetSymbol();
easeSymbol(symbol, new LatLng(6.687337, 0.381457), 180);
}
});

moveSymbol.start();
animators.add(moveSymbol);
}

@Override
Expand All @@ -267,6 +254,9 @@ protected void onPause() {
@Override
protected void onStop() {
super.onStop();
for (ValueAnimator animator : animators) {
animator.cancel();
}
mapView.onStop();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ public abstract class AnnotationManager<

protected final MapboxMap mapboxMap;
protected final LongSparseArray<T> annotations = new LongSparseArray<>();
protected final List<Feature> features = new ArrayList<>();
protected final Map<String, Boolean> propertyUsageMap = new HashMap<>();

private final DraggableAnnotationController<T, D> draggableAnnotationController;
Expand Down Expand Up @@ -176,8 +175,7 @@ public void updateSource() {
}

void internalUpdateSource() {
// todo move feature creation to a background thread?
features.clear();
List<Feature>features = new ArrayList<>();
T t;
for (int i = 0; i < annotations.size(); i++) {
t = annotations.valueAt(i);
Expand Down

0 comments on commit 42d2f69

Please sign in to comment.