summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-01-16 16:22:01 +0100
committerTobrun <tobrun@mapbox.com>2019-01-17 12:54:20 +0100
commit6e856ebb675340d2935ca6bf3148fa94e4fdd19f (patch)
treecb670bd6afc31aa2996b7e2e8e2471c7352046c3
parent69eb856f9afdf1ef7c0b9a51b4d1c16b413e8876 (diff)
downloadqtlocation-mapboxgl-6e856ebb675340d2935ca6bf3148fa94e4fdd19f.tar.gz
[android] - avoid leaking compassView context through animator
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java5
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java2
2 files changed, 6 insertions, 1 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index 94f38bb2c0..9d8dbce289 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -411,6 +411,11 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
mapCallback.onDestroy();
initialRenderCallback.onDestroy();
+ if (compassView != null) {
+ // avoid leaking context through animator #13742
+ compassView.resetAnimation();
+ }
+
if (mapboxMap != null) {
mapboxMap.onDestroy();
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java
index 9c800c078f..6262418a29 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java
@@ -68,7 +68,7 @@ public final class CompassView extends AppCompatImageView implements Runnable {
this.isAnimating = isAnimating;
}
- private void resetAnimation() {
+ public void resetAnimation() {
if (fadeAnimator != null) {
fadeAnimator.cancel();
}