summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-04-24 17:38:10 +0200
committerŁukasz Paczos <lukas.paczos@gmail.com>2019-04-24 17:38:10 +0200
commit47beb7ae0a5303f5440eb35e05d463b621b843b8 (patch)
treeb5c3e6c99711f745ce909427e646589e83535f30
parent15f8bf2ac7e0d2a240944a18c051ceffe1012bbf (diff)
downloadqtlocation-mapboxgl-upstream/pulsing-circle-scrap.tar.gz
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinator.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java102
2 files changed, 13 insertions, 93 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinator.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinator.java
index ea3f9e78cd..2eb8b66097 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinator.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationAnimatorCoordinator.java
@@ -441,6 +441,10 @@ final class LocationAnimatorCoordinator {
this.maxAnimationFps = maxAnimationFps;
}
+ public int getMaxAnimationFps() {
+ return maxAnimationFps;
+ }
+
private Interpolator retrievePulseInterpolator(String desiredInterpolatorFromOptions) {
switch(desiredInterpolatorFromOptions) {
case PulseMode.LINEAR:
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java
index 15426583ea..e7ec434ff6 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java
@@ -1,33 +1,19 @@
package com.mapbox.mapboxsdk.location;
-import android.animation.TypeEvaluator;
import android.animation.ValueAnimator;
import android.os.Build;
-import android.support.annotation.NonNull;
import android.util.Log;
import android.view.animation.Interpolator;
-import com.mapbox.mapboxsdk.log.Logger;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.style.layers.Layer;
import static com.mapbox.mapboxsdk.location.LocationComponentConstants.PROPERTY_PULSING_CIRCLE_LAYER;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleOpacity;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius;
/**
* Manages the logic of the interpolated animation which is applied to the LocationComponent's pulsing circle
*/
-public class PulsingLocationCircleAnimator extends MapboxAnimator {
-
- private static final String TAG = "Mbgl-PulsingLocationCircleAnimator";
- private static final float PULSING_CIRCLE_RADIUS = 60;
- private float opacityCounter;
- private Interpolator interpolatorToUse;
- private MapboxMap mapboxMap;
- private LocationComponentOptions locationComponentOptions;
- private Layer pulsingCircleLayer;
- private ValueAnimator animator;
+public class PulsingLocationCircleAnimator extends MapboxFloatAnimator {
/**
* Start the LocationComponent circle pulse animation
@@ -36,84 +22,14 @@ public class PulsingLocationCircleAnimator extends MapboxAnimator {
* @param mapboxMap the MapboxMap object which pulsing circle should be shown on
* @param locationComponentOptions the stying options of the LocationComponent pulsing circle
*/
- public PulsingLocationCircleAnimator(AnimationsValueChangeListener updateListener, Object target,
- Object animatedValue, double minUpdateInterval, long timeElapsed,
- Interpolator interpolatorToUse, MapboxMap mapboxMap,
- LocationComponentOptions locationComponentOptions) {
- super(updateListener, target, animatedValue, minUpdateInterval, timeElapsed);
- Logger.d(TAG,"creating PulsingLocationCircleAnimator()");
- this.interpolatorToUse = interpolatorToUse;
- this.mapboxMap = mapboxMap;
- this.locationComponentOptions = locationComponentOptions;
- this.opacityCounter = 0;
- }
-
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- super.onAnimationUpdate(animation);
- }
-
- @Override
- Object getTarget() {
- return super.getTarget();
- }
-
- @Override
- TypeEvaluator provideEvaluator() {
- return null;
- }
-
- public ValueAnimator getValueAnimator() {
- if (mapboxMap.getStyle().getLayer(PROPERTY_PULSING_CIRCLE_LAYER) != null) {
- animator = ValueAnimator.ofFloat(0f, PULSING_CIRCLE_RADIUS);
- animator.setDuration((long) locationComponentOptions.pulseSingleDuration());
- animator.setRepeatMode(ValueAnimator.RESTART);
- animator.setRepeatCount(ValueAnimator.INFINITE);
- animator.setInterpolator(interpolatorToUse);
- }
- return animator;
- }
-
- private void startValueAnimator() {
- if (animator != null) {
- Log.d(TAG, "startValueAnimator() animator != null");
- animator.start();
- }
- }
-
- public boolean pulsingAnimationIsStarted() {
- if (animator != null) {
- return animator.isStarted();
- }
- return false;
- }
-
- public boolean pulsingAnimationIsRunning() {
- if (animator != null) {
- return animator.isRunning();
- }
- return false;
+ public PulsingLocationCircleAnimator(AnimationsValueChangeListener updateListener, int maxAnimationFps, LocationComponentOptions options) {
+ super(0f, 60f, updateListener, maxAnimationFps);
+ setDuration((long) options.pulseSingleDuration());
+ setRepeatMode(ValueAnimator.RESTART);
+ setRepeatCount(ValueAnimator.INFINITE);
+ setInterpolator(interpolatorToUse);
}
- public void pausePulsingAnimation() {
- if (animator != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- animator.pause();
- } else {
- animator.end();
- }
- }
-
- public void resumePulsingAnimation() {
- if (animator != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- animator.resume();
-// getValueAnimator();
-// startValueAnimator();
- }
- }
-
- public void stopPulsingAnimation() {
- if (animator != null) {
- animator.end();
- }
- }
+ start();
+ end();
} \ No newline at end of file