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

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

am 20f71891: Merge "Fix Fade out during Activity Transition." into mnc-dev

* commit '20f71891':
  Fix Fade out during Activity Transition.
parents e9b1e365 20f71891
Loading
Loading
Loading
Loading
+24 −32
Original line number Original line Diff line number Diff line
@@ -21,14 +21,11 @@ import com.android.internal.R;
import android.animation.Animator;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.Animator.AnimatorListener;
import android.animation.Animator.AnimatorPauseListener;
import android.animation.Animator.AnimatorPauseListener;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
import android.content.Context;
import android.content.res.TypedArray;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.AttributeSet;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;


/**
/**
 * This transition tracks changes to the visibility of target views in the
 * This transition tracks changes to the visibility of target views in the
@@ -507,7 +504,8 @@ public abstract class Visibility extends Transition {
        private final int mFinalVisibility;
        private final int mFinalVisibility;
        private final ViewGroup mParent;
        private final ViewGroup mParent;


        private boolean mEnded;
        private boolean mLayoutSuppressed;
        private boolean mFinalVisibilitySet = false;
        boolean mCanceled = false;
        boolean mCanceled = false;


        public DisappearListener(View view, int finalVisibility, boolean isForcedVisibility) {
        public DisappearListener(View view, int finalVisibility, boolean isForcedVisibility) {
@@ -515,10 +513,8 @@ public abstract class Visibility extends Transition {
            this.mIsForcedVisibility = isForcedVisibility;
            this.mIsForcedVisibility = isForcedVisibility;
            this.mFinalVisibility = finalVisibility;
            this.mFinalVisibility = finalVisibility;
            this.mParent = (ViewGroup) view.getParent();
            this.mParent = (ViewGroup) view.getParent();
            if (!isForcedVisibility && mParent != null) {
            // Prevent a layout from including mView in its calculation.
            // Prevent a layout from including mView in its calculation.
                mParent.suppressLayout(true);
            suppressLayout(true);
            }
        }
        }


        @Override
        @Override
@@ -542,12 +538,10 @@ public abstract class Visibility extends Transition {


        @Override
        @Override
        public void onAnimationRepeat(Animator animation) {
        public void onAnimationRepeat(Animator animation) {

        }
        }


        @Override
        @Override
        public void onAnimationStart(Animator animation) {
        public void onAnimationStart(Animator animation) {

        }
        }


        @Override
        @Override
@@ -562,37 +556,35 @@ public abstract class Visibility extends Transition {


        @Override
        @Override
        public void onTransitionPause(Transition transition) {
        public void onTransitionPause(Transition transition) {
            if (mParent != null && !mIsForcedVisibility) {
            suppressLayout(false);
                mParent.suppressLayout(false);
            }
        }
        }


        @Override
        @Override
        public void onTransitionResume(Transition transition) {
        public void onTransitionResume(Transition transition) {
            if (mParent != null && !mIsForcedVisibility) {
            suppressLayout(true);
                mParent.suppressLayout(true);
            }
        }
        }


        private void hideViewWhenNotCanceled() {
        private void hideViewWhenNotCanceled() {
            if (!mEnded) {
            if (!mCanceled) {
            if (!mCanceled) {
                if (mIsForcedVisibility) {
                if (mIsForcedVisibility) {
                    mView.setTransitionAlpha(0);
                    mView.setTransitionAlpha(0);
                    } else {
                } else if (!mFinalVisibilitySet) {
                    // Recreate the parent's display list in case it includes mView.
                    // Recreate the parent's display list in case it includes mView.
                    mView.setTransitionVisibility(mFinalVisibility);
                    mView.setTransitionVisibility(mFinalVisibility);
                    if (mParent != null) {
                    if (mParent != null) {
                        mParent.invalidate();
                        mParent.invalidate();
                    }
                    }
                    mFinalVisibilitySet = true;
                }
                }
            }
            }
                if (!mIsForcedVisibility && mParent != null) {
            // Layout is allowed now that the View is in its final state
            // Layout is allowed now that the View is in its final state
                    mParent.suppressLayout(false);
            suppressLayout(false);
        }
        }
                // Do this only once

                mEnded = true;
        private void suppressLayout(boolean suppress) {
            if (mLayoutSuppressed != suppress && mParent != null && !mIsForcedVisibility) {
                mLayoutSuppressed = suppress;
                mParent.suppressLayout(suppress);
            }
            }
        }
        }
    }
    }