summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2015-06-11 15:32:14 -0700
committerGeorge Mount <mount@google.com>2015-06-15 14:12:26 -0700
commit727a6cf6ad06bbb43c0c309c33776394a0012895 (patch)
tree477432973ddd1b39bac47d99ddb886291b60fecd /core/java
parent23a6262fe9d2e23cfb49cbfbf6595485bb329438 (diff)
downloadframeworks_base-727a6cf6ad06bbb43c0c309c33776394a0012895.zip
frameworks_base-727a6cf6ad06bbb43c0c309c33776394a0012895.tar.gz
frameworks_base-727a6cf6ad06bbb43c0c309c33776394a0012895.tar.bz2
Fix blink in Explode transition.
Bug 21785708 Change-Id: I1250d8e084601a6267906fdb2f3df46cbb8161fc
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/transition/Explode.java4
-rw-r--r--core/java/android/transition/Slide.java4
-rw-r--r--core/java/android/transition/TranslationAnimationCreator.java32
3 files changed, 32 insertions, 8 deletions
diff --git a/core/java/android/transition/Explode.java b/core/java/android/transition/Explode.java
index 788676a..3445ef2 100644
--- a/core/java/android/transition/Explode.java
+++ b/core/java/android/transition/Explode.java
@@ -90,7 +90,7 @@ public class Explode extends Visibility {
float startY = endY + mTempLoc[1];
return TranslationAnimationCreator.createAnimation(view, endValues, bounds.left, bounds.top,
- startX, startY, endX, endY, sDecelerate);
+ startX, startY, endX, endY, sDecelerate, this);
}
@Override
@@ -119,7 +119,7 @@ public class Explode extends Visibility {
endY += mTempLoc[1];
return TranslationAnimationCreator.createAnimation(view, startValues,
- viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate);
+ viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate, this);
}
private void calculateOut(View sceneRoot, Rect bounds, int[] outVector) {
diff --git a/core/java/android/transition/Slide.java b/core/java/android/transition/Slide.java
index be1d907..9063b43 100644
--- a/core/java/android/transition/Slide.java
+++ b/core/java/android/transition/Slide.java
@@ -231,7 +231,7 @@ public class Slide extends Visibility {
float startY = mSlideCalculator.getGoneY(sceneRoot, view);
return TranslationAnimationCreator
.createAnimation(view, endValues, position[0], position[1],
- startX, startY, endX, endY, sDecelerate);
+ startX, startY, endX, endY, sDecelerate, this);
}
@Override
@@ -247,6 +247,6 @@ public class Slide extends Visibility {
float endY = mSlideCalculator.getGoneY(sceneRoot, view);
return TranslationAnimationCreator
.createAnimation(view, startValues, position[0], position[1],
- startX, startY, endX, endY, sAccelerate);
+ startX, startY, endX, endY, sAccelerate, this);
}
}
diff --git a/core/java/android/transition/TranslationAnimationCreator.java b/core/java/android/transition/TranslationAnimationCreator.java
index de71fd7..1554975 100644
--- a/core/java/android/transition/TranslationAnimationCreator.java
+++ b/core/java/android/transition/TranslationAnimationCreator.java
@@ -22,6 +22,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.TimeInterpolator;
import android.graphics.Path;
+import android.transition.Transition.TransitionListener;
import android.view.View;
/**
@@ -48,7 +49,8 @@ class TranslationAnimationCreator {
* a previous interruption, in which case it moves from the current position to (endX, endY).
*/
static Animator createAnimation(View view, TransitionValues values, int viewPosX, int viewPosY,
- float startX, float startY, float endX, float endY, TimeInterpolator interpolator) {
+ float startX, float startY, float endX, float endY, TimeInterpolator interpolator,
+ Transition transition) {
float terminalX = view.getTranslationX();
float terminalY = view.getTranslationY();
int[] startPosition = (int[]) values.view.getTag(R.id.transitionPosition);
@@ -73,13 +75,15 @@ class TranslationAnimationCreator {
TransitionPositionListener listener = new TransitionPositionListener(view, values.view,
startPosX, startPosY, terminalX, terminalY);
+ transition.addListener(listener);
anim.addListener(listener);
anim.addPauseListener(listener);
anim.setInterpolator(interpolator);
return anim;
}
- private static class TransitionPositionListener extends AnimatorListenerAdapter {
+ private static class TransitionPositionListener extends AnimatorListenerAdapter implements
+ TransitionListener {
private final View mViewInHierarchy;
private final View mMovingView;
@@ -117,8 +121,6 @@ class TranslationAnimationCreator {
@Override
public void onAnimationEnd(Animator animator) {
- mMovingView.setTranslationX(mTerminalX);
- mMovingView.setTranslationY(mTerminalY);
}
@Override
@@ -134,6 +136,28 @@ class TranslationAnimationCreator {
mMovingView.setTranslationX(mPausedX);
mMovingView.setTranslationY(mPausedY);
}
+
+ @Override
+ public void onTransitionStart(Transition transition) {
+ }
+
+ @Override
+ public void onTransitionEnd(Transition transition) {
+ mMovingView.setTranslationX(mTerminalX);
+ mMovingView.setTranslationY(mTerminalY);
+ }
+
+ @Override
+ public void onTransitionCancel(Transition transition) {
+ }
+
+ @Override
+ public void onTransitionPause(Transition transition) {
+ }
+
+ @Override
+ public void onTransitionResume(Transition transition) {
+ }
}
}