Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +4 −2 Original line number Diff line number Diff line Loading @@ -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 { Loading services/core/java/com/android/server/wm/Task.java +3 −5 Original line number Diff line number Diff line Loading @@ -1930,7 +1930,6 @@ class Task extends TaskFragment { mTaskSupervisor.scheduleUpdateMultiWindowMode(this); } final int newWinMode = getWindowingMode(); if (shouldStartChangeTransition(prevWinMode, mTmpPrevBounds)) { initializeChangeTransition(mTmpPrevBounds); } Loading @@ -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(); } } Loading services/core/java/com/android/server/wm/WindowToken.java +0 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +4 −2 Original line number Diff line number Diff line Loading @@ -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 { Loading
services/core/java/com/android/server/wm/Task.java +3 −5 Original line number Diff line number Diff line Loading @@ -1930,7 +1930,6 @@ class Task extends TaskFragment { mTaskSupervisor.scheduleUpdateMultiWindowMode(this); } final int newWinMode = getWindowingMode(); if (shouldStartChangeTransition(prevWinMode, mTmpPrevBounds)) { initializeChangeTransition(mTmpPrevBounds); } Loading @@ -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(); } } Loading
services/core/java/com/android/server/wm/WindowToken.java +0 −2 Original line number Diff line number Diff line Loading @@ -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; Loading