From aa006133228facf2f9b61e0492fd8f724fac472f Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Thu, 3 Oct 2013 18:02:21 -0700 Subject: Enable transitions in lockscreen media controller Media controller now fades between different states. The code for doing this was already there, but this CL enables them and changes the behavior of transition's OnPreDrawListener to do the right thing. Also, this CL fixes a bug in ChangeText found while testing this change. Issue #11083563 ChangeText transition crashes when KEEP transition type used Change-Id: I5e04c28e1b5faac017b0a4e49734d9faa7fe79cd --- core/java/android/transition/ChangeText.java | 7 +++++-- core/java/android/transition/TransitionManager.java | 7 +------ 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'core') diff --git a/core/java/android/transition/ChangeText.java b/core/java/android/transition/ChangeText.java index b1be70f..8677a56 100644 --- a/core/java/android/transition/ChangeText.java +++ b/core/java/android/transition/ChangeText.java @@ -179,8 +179,8 @@ public class ChangeText extends Transition { startSelectionStart = startSelectionEnd = endSelectionStart = endSelectionEnd = -1; } if (!startText.equals(endText)) { - final int startColor = (Integer) startVals.get(PROPNAME_TEXT_COLOR); - final int endColor = (Integer) endVals.get(PROPNAME_TEXT_COLOR); + final int startColor; + final int endColor; if (mChangeBehavior != CHANGE_BEHAVIOR_IN) { view.setText(startText); if (view instanceof EditText) { @@ -189,6 +189,7 @@ public class ChangeText extends Transition { } Animator anim; if (mChangeBehavior == CHANGE_BEHAVIOR_KEEP) { + startColor = endColor = 0; anim = ValueAnimator.ofFloat(0, 1); anim.addListener(new AnimatorListenerAdapter() { @Override @@ -203,6 +204,8 @@ public class ChangeText extends Transition { } }); } else { + startColor = (Integer) startVals.get(PROPNAME_TEXT_COLOR); + endColor = (Integer) endVals.get(PROPNAME_TEXT_COLOR); // Fade out start text ValueAnimator outAnim = null, inAnim = null; if (mChangeBehavior == CHANGE_BEHAVIOR_OUT_IN || diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java index 9be91d0..404709c 100644 --- a/core/java/android/transition/TransitionManager.java +++ b/core/java/android/transition/TransitionManager.java @@ -240,12 +240,7 @@ public class TransitionManager { } transition.playTransition(sceneRoot); - // Returning false from onPreDraw() skips the current frame. This is - // necessary to avoid artifacts caused by resetting target views - // to their proper end states for capturing. Waiting until the next - // frame to draw allows these views to have their mid-transition - // values set on them again and avoid artifacts. - return false; + return true; } }; observer.addOnPreDrawListener(listener); -- cgit v1.1