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

Commit ce2ee3d6 authored by George Mount's avatar George Mount
Browse files

Fix fade transition not working with Activity Transitions.

Bug 17440475

transitionAlpha must be set when using Transition.forceVisibility,
but shouldn't be set when views initially come into the scene.

Change-Id: Icc61c83c701508d09dadb074c86094171dcce78a
parent bb3b2dca
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -599,17 +599,18 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
                mOriginalAlphas.put(view, view.getAlpha());
            }
            view.setAlpha(0f);
            view.setTransitionAlpha(0f);
        }
    }

    protected void showViews(ArrayList<View> views) {
    protected void showViews(ArrayList<View> views, boolean setTransitionAlpha) {
        int count = views.size();
        for (int i = 0; i < count; i++) {
            View view = views.get(i);
            Float alpha = mOriginalAlphas.remove(view);
            if (alpha != null) {
                view.setAlpha(alpha);
            }
            if (setTransitionAlpha) {
                view.setTransitionAlpha(1f);
            }
        }
+3 −3
Original line number Diff line number Diff line
@@ -240,7 +240,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
        if (!mIsCanceled) {
            mIsCanceled = true;
            if (getViewsTransition() == null || mIsViewsTransitionStarted) {
                showViews(mSharedElements);
                showViews(mSharedElements, true);
            } else {
                mTransitioningViews.addAll(mSharedElements);
            }
@@ -300,7 +300,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
        // Now start shared element transition
        ArrayList<View> sharedElementSnapshots = createSnapshots(sharedElementState,
                mSharedElementNames);
        showViews(mSharedElements);
        showViews(mSharedElements, true);
        scheduleSetSharedElementEnd(sharedElementSnapshots);
        ArrayList<SharedElementOriginalState> originalImageViewState =
                setSharedElementState(sharedElementState, sharedElementSnapshots);
@@ -411,7 +411,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
                    @Override
                    public void onTransitionStart(Transition transition) {
                        mEnterViewsTransition = transition;
                        showViews(mTransitioningViews);
                        showViews(mTransitioningViews, false);
                        super.onTransitionStart(transition);
                    }

+4 −4
Original line number Diff line number Diff line
@@ -126,8 +126,8 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
    }

    public void resetViews() {
        showViews(mTransitioningViews);
        showViews(mSharedElements);
        showViews(mTransitioningViews, true);
        showViews(mSharedElements, true);
        mIsHidden = true;
        if (!mIsReturning && getDecor() != null) {
            getDecor().suppressLayout(false);
@@ -296,7 +296,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
                    transition.removeListener(this);
                    exitTransitionComplete();
                    if (mIsHidden) {
                        showViews(mTransitioningViews);
                        showViews(mTransitioningViews, true);
                    }
                    if (mSharedElementBundle != null) {
                        delayCancel();
@@ -323,7 +323,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
                    transition.removeListener(this);
                    sharedElementTransitionComplete();
                    if (mIsHidden) {
                        showViews(mSharedElements);
                        showViews(mSharedElements, true);
                    }
                }
            });