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

Commit 57bbf843 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Keep rotation transform for exiting PiP with fixed rotation" into tm-qpr-dev am: 6ecaf458

parents 04e8b101 6ecaf458
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;