From 265f209d551092a08f2969ec5fed94292d7741b6 Mon Sep 17 00:00:00 2001 From: George Mount Date: Wed, 30 Apr 2014 16:24:53 -0700 Subject: [PATCH] Fixed transition start delay propagation when duration = 0. Bug 14443184 Also gave the propagation speed a tweak to make it more obvious that there is a propagation. Change-Id: If9dc3172ae6ce7e6a712ccd1b83ebec9bf880bfa --- core/java/android/transition/CircularPropagation.java | 10 +++++++--- core/java/android/transition/SidePropagation.java | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/java/android/transition/CircularPropagation.java b/core/java/android/transition/CircularPropagation.java index 18a3d229cc6c..51beb51eba15 100644 --- a/core/java/android/transition/CircularPropagation.java +++ b/core/java/android/transition/CircularPropagation.java @@ -34,7 +34,7 @@ import android.view.ViewGroup; public class CircularPropagation extends VisibilityPropagation { private static final String TAG = "CircularPropagation"; - private float mPropagationSpeed = 4.0f; + private float mPropagationSpeed = 3.0f; /** * Sets the speed at which transition propagation happens, relative to the duration of the @@ -91,8 +91,12 @@ public class CircularPropagation extends VisibilityPropagation { float maxDistance = distance(0, 0, sceneRoot.getWidth(), sceneRoot.getHeight()); float distanceFraction = distance/maxDistance; - return Math.round(transition.getDuration() * directionMultiplier / mPropagationSpeed - * distanceFraction); + long duration = transition.getDuration(); + if (duration < 0) { + duration = 300; + } + + return Math.round(duration * directionMultiplier / mPropagationSpeed * distanceFraction); } private static float distance(float x1, float y1, float x2, float y2) { diff --git a/core/java/android/transition/SidePropagation.java b/core/java/android/transition/SidePropagation.java index c331945b27ca..5d38ac85f699 100644 --- a/core/java/android/transition/SidePropagation.java +++ b/core/java/android/transition/SidePropagation.java @@ -52,7 +52,7 @@ public class SidePropagation extends VisibilityPropagation { */ public static final int BOTTOM = Slide.BOTTOM; - private float mPropagationSpeed = 4.0f; + private float mPropagationSpeed = 3.0f; private int mSide = BOTTOM; /** @@ -129,8 +129,12 @@ public class SidePropagation extends VisibilityPropagation { float maxDistance = getMaxDistance(sceneRoot); float distanceFraction = distance/maxDistance; - return Math.round(transition.getDuration() * directionMultiplier / mPropagationSpeed - * distanceFraction); + long duration = transition.getDuration(); + if (duration < 0) { + duration = 300; + } + + return Math.round(duration * directionMultiplier / mPropagationSpeed * distanceFraction); } private int distance(int viewX, int viewY, int epicenterX, int epicenterY, -- 2.11.0