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

Commit 3f739669 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Use sync transaction for dim layer and scale" into tm-dev am: 0c410817

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17256343

Change-Id: I406cc44da5c459e607b2f5353b047c3c50434e5d
parents 38d23fae 0c410817
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -144,7 +144,8 @@ class AsyncRotationController extends FadeAnimationController implements Consume
        // Legacy animation doesn't need to wait for the start transaction.
        if (mTransitionOp == OP_LEGACY) {
            mIsStartTransactionCommitted = true;
        } else if (displayContent.mTransitionController.useShellTransitionsRotation()) {
        } else if (displayContent.mTransitionController.useShellTransitionsRotation()
                || displayContent.mTransitionController.isCollecting(displayContent)) {
            keepAppearanceInPreviousRotation();
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -662,7 +662,7 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
                mDimmer.resetDimStates();
            }

            if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
            if (mDimmer.updateDims(getSyncTransaction(), mTmpDimBoundsRect)) {
                scheduleAnimation();
            }
        }
+4 −3
Original line number Diff line number Diff line
@@ -3297,9 +3297,10 @@ class Task extends TaskFragment {
            mTmpDimBoundsRect.offsetTo(0, 0);
        }

        updateShadowsRadius(isFocused(), getSyncTransaction());
        final SurfaceControl.Transaction t = getSyncTransaction();
        updateShadowsRadius(isFocused(), t);

        if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
        if (mDimmer.updateDims(t, mTmpDimBoundsRect)) {
            scheduleAnimation();
        }

@@ -3309,7 +3310,7 @@ class Task extends TaskFragment {
        final boolean show = isVisible() || isAnimating(TRANSITION | PARENTS | CHILDREN);
        if (mSurfaceControl != null) {
            if (show != mLastSurfaceShowing) {
                getSyncTransaction().setVisibility(mSurfaceControl, show);
                t.setVisibility(mSurfaceControl, show);
            }
        }
        mLastSurfaceShowing = show;
+1 −1
Original line number Diff line number Diff line
@@ -2425,7 +2425,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        // Bounds need to be relative, as the dim layer is a child.
        final Rect dimBounds = getBounds();
        dimBounds.offsetTo(0 /* newLeft */, 0 /* newTop */);
        if (mDimmer.updateDims(getPendingTransaction(), dimBounds)) {
        if (mDimmer.updateDims(getSyncTransaction(), dimBounds)) {
            scheduleAnimation();
        }
    }
+8 −4
Original line number Diff line number Diff line
@@ -5272,6 +5272,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        if (mControllableInsetProvider != null) {
            return;
        }
        if (mDisplayContent.inTransition()) {
            // Skip because the animation is usually unnoticeable (e.g. covered by rotation
            // animation) and the animation bounds could be inconsistent, such as depending
            // on when the window applies its draw transaction with new rotation.
            return;
        }

        final DisplayInfo displayInfo = getDisplayInfo();
        anim.initialize(mWindowFrames.mFrame.width(), mWindowFrames.mFrame.height(),
@@ -5516,10 +5522,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        }
        float newHScale = mHScale * mGlobalScale * mWallpaperScale;
        float newVScale = mVScale * mGlobalScale * mWallpaperScale;
        if (mLastHScale != newHScale ||
            mLastVScale != newVScale ) {
            getPendingTransaction().setMatrix(getSurfaceControl(),
                newHScale, 0, 0, newVScale);
        if (mLastHScale != newHScale || mLastVScale != newVScale) {
            getSyncTransaction().setMatrix(mSurfaceControl, newHScale, 0, 0, newVScale);
            mLastHScale = newHScale;
            mLastVScale = newVScale;
        }