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

Commit 6ecaf458 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Keep rotation transform for exiting PiP with fixed rotation" into tm-qpr-dev

parents 0e8f4211 56647c4c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -358,8 +358,10 @@ public class PipTransition extends PipTransitionController {
            WindowContainerTransaction wct = null;
            if (isOutPipDirection(direction)) {
                // Only need to reset surface properties. The server-side operations were already
                // done at the start.
                if (tx != null) {
                // done at the start. But if it is running fixed rotation, there will be a seamless
                // display transition later. So the last rotation transform needs to be kept to
                // avoid flickering, and then the display transition will reset the transform.
                if (tx != null && !mInFixedRotation) {
                    mFinishTransaction.merge(tx);
                }
            } else {
+3 −5
Original line number Diff line number Diff line
@@ -1930,7 +1930,6 @@ class Task extends TaskFragment {
            mTaskSupervisor.scheduleUpdateMultiWindowMode(this);
        }

        final int newWinMode = getWindowingMode();
        if (shouldStartChangeTransition(prevWinMode, mTmpPrevBounds)) {
            initializeChangeTransition(mTmpPrevBounds);
        }
@@ -1944,16 +1943,15 @@ class Task extends TaskFragment {
            }
        }

        if (pipChanging && wasInPictureInPicture) {
        if (pipChanging && wasInPictureInPicture
                && !mTransitionController.isShellTransitionsEnabled()) {
            // If the top activity is changing from PiP to fullscreen with fixed rotation,
            // clear the crop and rotation matrix of task because fixed rotation will handle
            // the transformation on activity level. This also avoids flickering caused by the
            // latency of fullscreen task organizer configuring the surface.
            final ActivityRecord r = topRunningActivity();
            if (r != null && mDisplayContent.isFixedRotationLaunchingApp(r)) {
                getSyncTransaction().setWindowCrop(mSurfaceControl, null)
                        .setCornerRadius(mSurfaceControl, 0f)
                        .setMatrix(mSurfaceControl, Matrix.IDENTITY_MATRIX, new float[9]);
                resetSurfaceControlTransforms();
            }
        }

+0 −2
Original line number Diff line number Diff line
@@ -588,9 +588,7 @@ class WindowToken extends WindowContainer<WindowState> {
                .setCallsite("WindowToken.getOrCreateFixedRotationLeash")
                .build();
        t.setPosition(leash, mLastSurfacePosition.x, mLastSurfacePosition.y);
        t.show(leash);
        t.reparent(getSurfaceControl(), leash);
        t.setAlpha(getSurfaceControl(), 1.f);
        mFixedRotationTransformLeash = leash;
        updateSurfaceRotation(t, rotation, mFixedRotationTransformLeash);
        return mFixedRotationTransformLeash;