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

Commit 214e7ad1 authored by George Mount's avatar George Mount Committed by Android (Google) Code Review
Browse files

Merge "Use Alpha instead of TransitionAlpha for Activity Transitions." into lmp-dev

parents 95e71085 0f0c4734
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -205,6 +205,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
    private boolean mIsStartingTransition;
    private ArrayList<GhostViewListeners> mGhostViewListeners =
            new ArrayList<GhostViewListeners>();
    private ArrayMap<View, Float> mOriginalAlphas = new ArrayMap<View, Float>();

    public ActivityTransitionCoordinator(Window window,
            ArrayList<String> allSharedElementNames,
@@ -580,6 +581,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
        mWindow = null;
        mSharedElements.clear();
        mTransitioningViews.clear();
        mOriginalAlphas.clear();
        mResultReceiver = null;
        mPendingTransition = null;
        mListener = null;
@@ -589,10 +591,27 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
        return getWindow().getTransitionBackgroundFadeDuration();
    }

    protected static void setTransitionAlpha(ArrayList<View> views, float alpha) {
    protected void hideViews(ArrayList<View> views) {
        int count = views.size();
        for (int i = 0; i < count; i++) {
            views.get(i).setTransitionAlpha(alpha);
            View view = views.get(i);
            if (!mOriginalAlphas.containsKey(view)) {
                mOriginalAlphas.put(view, view.getAlpha());
            }
            view.setAlpha(0f);
            view.setTransitionAlpha(0f);
        }
    }

    protected void showViews(ArrayList<View> views) {
        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);
                view.setTransitionAlpha(1f);
            }
        }
    }

+5 −5
Original line number Diff line number Diff line
@@ -112,9 +112,9 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
    protected void viewsReady(ArrayMap<String, View> sharedElements) {
        super.viewsReady(sharedElements);
        mIsReadyForTransition = true;
        setTransitionAlpha(mSharedElements, 0);
        hideViews(mSharedElements);
        if (getViewsTransition() != null) {
            setTransitionAlpha(mTransitioningViews, 0);
            hideViews(mTransitioningViews);
        }
        if (mIsReturning) {
            sendSharedElementDestination();
@@ -240,7 +240,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
        if (!mIsCanceled) {
            mIsCanceled = true;
            if (getViewsTransition() == null || mIsViewsTransitionStarted) {
                setTransitionAlpha(mSharedElements, 1);
                showViews(mSharedElements);
            } else {
                mTransitioningViews.addAll(mSharedElements);
            }
@@ -300,7 +300,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
        // Now start shared element transition
        ArrayList<View> sharedElementSnapshots = createSnapshots(sharedElementState,
                mSharedElementNames);
        setTransitionAlpha(mSharedElements, 1);
        showViews(mSharedElements);
        scheduleSetSharedElementEnd(sharedElementSnapshots);
        ArrayList<SharedElementOriginalState> originalImageViewState =
                setSharedElementState(sharedElementState, sharedElementSnapshots);
@@ -411,7 +411,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
                    @Override
                    public void onTransitionStart(Transition transition) {
                        mEnterViewsTransition = transition;
                        setTransitionAlpha(mTransitioningViews, 1);
                        showViews(mTransitioningViews);
                        super.onTransitionStart(transition);
                    }

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

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