diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Transition.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 0e1a6ded8515..6650f43c15ae 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -2155,8 +2155,12 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe Slog.w(TAG, "Failed to capture screenshot for " + wc); return false; } + final boolean isDisplayRotation = wc.asDisplayContent() != null + && wc.asDisplayContent().isRotationChanging(); + // Some tests may check the name "RotationLayer" to detect display rotation. + final String name = isDisplayRotation ? "RotationLayer" : "transition snapshot: " + wc; SurfaceControl snapshotSurface = wc.makeAnimationLeash() - .setName("transition snapshot: " + wc.toString()) + .setName(name) .setOpaque(true) .setParent(wc.getSurfaceControl()) .setSecure(screenshotBuffer.containsSecureLayers()) @@ -2166,9 +2170,8 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe mFrozen.add(wc); final ChangeInfo changeInfo = Objects.requireNonNull(mChanges.get(wc)); changeInfo.mSnapshot = snapshotSurface; - if (wc.asDisplayContent() != null) { - // This isn't cheap, so only do it for rotations: assume display-level is rotate - // since most of the time it is. + if (isDisplayRotation) { + // This isn't cheap, so only do it for display rotations. changeInfo.mSnapshotLuma = RotationAnimationUtils.getMedianBorderLuma( screenshotBuffer.getHardwareBuffer(), screenshotBuffer.getColorSpace()); } |