From d9bf94da99cb5ebeb0a9b030bfa31576ce236000 Mon Sep 17 00:00:00 2001 From: Andrey Novikov Date: Mon, 28 Nov 2016 17:42:44 +0400 Subject: [PATCH] Fix zoom animation not executed sometimes (#261) --- vtm/src/org/oscim/map/Animator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vtm/src/org/oscim/map/Animator.java b/vtm/src/org/oscim/map/Animator.java index b97fd276..3cf52161 100644 --- a/vtm/src/org/oscim/map/Animator.java +++ b/vtm/src/org/oscim/map/Animator.java @@ -187,6 +187,8 @@ public class Animator { mStartPos.copy(mCurPos); scaleBy = mMap.viewport().limitScale(scaleBy); + if (scaleBy == 0.0) + return; mDeltaPos.scale = scaleBy - mStartPos.scale; @@ -254,7 +256,7 @@ public class Animator { return; } - float adv = clamp(1.0f - millisLeft / mDuration, 0, 1); + float adv = clamp(1.0f - millisLeft / mDuration, 1E-6f, 1); // Avoid redundant calculations in case of linear easing if (mEasingType != Easing.Type.LINEAR) { adv = Easing.ease(0, (long) (adv * Long.MAX_VALUE), Long.MAX_VALUE, mEasingType);