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

Commit 1b2fb2ca authored by George Mount's avatar George Mount
Browse files

Fade Transition sometimes disappeared improperly.

Bug 14320504

Change-Id: I43c2ddd34a5bd3a366027cd3c09d088baa4fb6f4
parent f60194b1
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ public class Fade extends Visibility {
        if (DBG) {
            Log.d(LOG_TAG, "Created animator " + anim);
        }
        FadeAnimatorListener listener = new FadeAnimatorListener(view, endAlpha);
        FadeAnimatorListener listener = new FadeAnimatorListener(view);
        anim.addListener(listener);
        anim.addPauseListener(listener);
        return anim;
@@ -138,13 +138,11 @@ public class Fade extends Visibility {

    private static class FadeAnimatorListener extends AnimatorListenerAdapter {
        private final View mView;
        private final float mEndAlpha;
        private boolean mCanceled = false;
        private float mPausedAlpha;
        private float mPausedAlpha = -1;

        public FadeAnimatorListener(View view, float endAlpha) {
        public FadeAnimatorListener(View view) {
            mView = view;
            mEndAlpha = endAlpha;
        }

        @Override
@@ -158,14 +156,14 @@ public class Fade extends Visibility {
        @Override
        public void onAnimationEnd(Animator animator) {
            if (!mCanceled) {
                mView.setTransitionAlpha(mEndAlpha);
                mView.setTransitionAlpha(1);
            }
        }

        @Override
        public void onAnimationPause(Animator animator) {
            mPausedAlpha = mView.getTransitionAlpha();
            mView.setTransitionAlpha(mEndAlpha);
            mView.setTransitionAlpha(1);
        }

        @Override
+2 −1
Original line number Diff line number Diff line
@@ -347,10 +347,11 @@ public abstract class Visibility extends Transition {
        }

        if (viewToKeep != null) {
            int originalVisibility = viewToKeep.getVisibility();
            viewToKeep.setVisibility(View.VISIBLE);
            Animator animator = onDisappear(sceneRoot, viewToKeep, startValues, endValues);
            if (animator == null) {
                viewToKeep.setVisibility(finalVisibility);
                viewToKeep.setVisibility(originalVisibility);
            } else {
                final View finalViewToKeep = viewToKeep;
                animator.addListener(new AnimatorListenerAdapter() {