summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-01-22 15:24:54 +0100
committerŁukasz Paczos <lukas.paczos@gmail.com>2019-01-22 15:24:54 +0100
commitc5531c59466e0d9f451ca492ebe01f2876f8d364 (patch)
tree67654fac687c297901b91c4160480bc605c651c8
parent2639d3b31db2313e525b137b48072935671ab136 (diff)
downloadqtlocation-mapboxgl-c5531c59466e0d9f451ca492ebe01f2876f8d364.tar.gz
[android] fix CameraAnimatorActivity leaks
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java61
1 files changed, 28 insertions, 33 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
index 48d61abc2a..e278d033be 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
@@ -35,35 +35,30 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe
private static final double ANIMATION_DELAY_FACTOR = 1.5;
private static final LatLng START_LAT_LNG = new LatLng(37.787947, -122.407432);
- private final LongSparseArray<AnimatorBuilder> animators = new LongSparseArray<AnimatorBuilder>() {
- {
- put(R.id.menu_action_accelerate_decelerate_interpolator, () -> {
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.playTogether(
- createLatLngAnimator(START_LAT_LNG, new LatLng(37.826715, -122.422795)),
- obtainExampleInterpolator(new FastOutSlowInInterpolator(), 2500)
- );
- return animatorSet;
- });
-
- put(R.id.menu_action_bounce_interpolator, () -> {
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.playTogether(
- createLatLngAnimator(START_LAT_LNG, new LatLng(37.787947, -122.407432)),
- obtainExampleInterpolator(new BounceInterpolator(), 3750)
- );
- return animatorSet;
- });
-
- put(R.id.menu_action_anticipate_overshoot_interpolator, () ->
- obtainExampleInterpolator(new AnticipateOvershootInterpolator(), 2500)
- );
-
- put(R.id.menu_action_path_interpolator, () -> obtainExampleInterpolator(
- PathInterpolatorCompat.create(.22f, .68f, 0, 1.71f), 2500));
- }
- };
+ private final LongSparseArray<Animator> animators = new LongSparseArray<>();
+
+ {
+ AnimatorSet accelerateDecelerateAnimatorSet = new AnimatorSet();
+ accelerateDecelerateAnimatorSet.playTogether(
+ createLatLngAnimator(START_LAT_LNG, new LatLng(37.826715, -122.422795)),
+ obtainExampleInterpolator(new FastOutSlowInInterpolator(), 2500)
+ );
+ animators.put(R.id.menu_action_accelerate_decelerate_interpolator, accelerateDecelerateAnimatorSet);
+ AnimatorSet bounceAnimatorSet = new AnimatorSet();
+ bounceAnimatorSet.playTogether(
+ createLatLngAnimator(START_LAT_LNG, new LatLng(37.787947, -122.407432)),
+ obtainExampleInterpolator(new BounceInterpolator(), 3750)
+ );
+ animators.put(R.id.menu_action_bounce_interpolator, bounceAnimatorSet);
+
+ animators.put(R.id.menu_action_anticipate_overshoot_interpolator,
+ obtainExampleInterpolator(new AnticipateOvershootInterpolator(), 2500)
+ );
+
+ animators.put(R.id.menu_action_path_interpolator, obtainExampleInterpolator(
+ PathInterpolatorCompat.create(.22f, .68f, 0, 1.71f), 2500));
+ }
private MapView mapView;
private MapboxMap mapboxMap;
@@ -161,7 +156,7 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe
//
private Animator obtainExampleInterpolator(int menuItemId) {
- return animators.get(menuItemId).build();
+ return animators.get(menuItemId);
}
@Override
@@ -198,6 +193,7 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe
private void playAnimation(int itemId) {
Animator animator = obtainExampleInterpolator(itemId);
if (animator != null) {
+ animator.cancel();
animator.start();
}
}
@@ -238,6 +234,9 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe
protected void onStop() {
super.onStop();
mapView.onStop();
+ for (int i = 0; i < animators.size(); i++) {
+ animators.get(animators.keyAt(i)).cancel();
+ }
}
@Override
@@ -274,8 +273,4 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe
return latLng;
}
}
-
- interface AnimatorBuilder {
- Animator build();
- }
}