diff --git a/services/core/java/com/android/server/wm/ContentRecorder.java b/services/core/java/com/android/server/wm/ContentRecorder.java index 6a7e76411fee4..2ecbf8a25ed94 100644 --- a/services/core/java/com/android/server/wm/ContentRecorder.java +++ b/services/core/java/com/android/server/wm/ContentRecorder.java @@ -166,7 +166,7 @@ final class ContentRecorder implements WindowContainerListener { + "%d to new bounds %s and/or orientation %d.", mDisplayContent.getDisplayId(), recordedContentBounds, recordedContentOrientation); - updateMirroredSurface(mDisplayContent.mWmService.mTransactionFactory.get(), + updateMirroredSurface(mRecordedWindowContainer.getSyncTransaction(), recordedContentBounds, surfaceSize); } else { // If the surface removed, do nothing. We will handle this via onDisplayChanged @@ -325,6 +325,7 @@ final class ContentRecorder implements WindowContainerListener { .reparent(mDisplayContent.getOverlayLayer(), null); // Retrieve the size of the DisplayArea to mirror. updateMirroredSurface(transaction, mRecordedWindowContainer.getBounds(), surfaceSize); + transaction.apply(); // Notify the client about the visibility of the mirrored region, now that we have begun // capture. @@ -481,8 +482,7 @@ final class ContentRecorder implements WindowContainerListener { .setMatrix(mRecordedSurface, scale, 0 /* dtdx */, 0 /* dtdy */, scale) // Position needs to be updated when the mirrored DisplayArea has changed, since // the content will no longer be centered in the output surface. - .setPosition(mRecordedSurface, shiftedX /* x */, shiftedY /* y */) - .apply(); + .setPosition(mRecordedSurface, shiftedX /* x */, shiftedY /* y */); mLastRecordedBounds = new Rect(recordedContentBounds); // Request to notify the client about the resize. mMediaProjectionManager.notifyActiveProjectionCapturedContentResized(