summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java
new file mode 100644
index 0000000000..89d27a38fa
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/MapboxCameraAnimatorAdapter.java
@@ -0,0 +1,38 @@
+package com.mapbox.mapboxsdk.location;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.support.annotation.Nullable;
+
+import com.mapbox.mapboxsdk.maps.MapboxMap;
+
+import java.util.List;
+
+abstract class MapboxCameraAnimatorAdapter extends
+ MapboxFloatAnimator<MapboxAnimator.OnCameraAnimationsValuesChangeListener> {
+ private final MapboxMap.CancelableCallback cancelableCallback;
+
+ MapboxCameraAnimatorAdapter(Float previous, Float target,
+ List<OnCameraAnimationsValuesChangeListener> updateListeners,
+ @Nullable MapboxMap.CancelableCallback cancelableCallback) {
+ super(previous, target, updateListeners);
+ this.cancelableCallback = cancelableCallback;
+ addListener(new MapboxAnimatorListener());
+ }
+
+ private final class MapboxAnimatorListener extends AnimatorListenerAdapter {
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ if (cancelableCallback != null) {
+ cancelableCallback.onCancel();
+ }
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ if (cancelableCallback != null) {
+ cancelableCallback.onFinish();
+ }
+ }
+ }
+}