Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c8ff1dd authored by George Mount's avatar George Mount Committed by Android Git Automerger
Browse files

am 727a6cf6: Fix blink in Explode transition.

* commit '727a6cf6':
  Fix blink in Explode transition.
parents a7d98a05 727a6cf6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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) {
+2 −2
Original line number Diff line number Diff line
@@ -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);
    }
}
+28 −4
Original line number Diff line number Diff line
@@ -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) {
        }
    }

}