diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 9e5d12223501b..59e6b21184a60 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -817,10 +817,14 @@ public final class SurfaceControl implements Parcelable { /** * The portion of the screen to capture into the buffer. Caller may pass in - * 'new Rect()' if no cropping is desired. + * 'new Rect()' or null if no cropping is desired. */ - public T setSourceCrop(Rect sourceCrop) { - mSourceCrop.set(sourceCrop); + public T setSourceCrop(@Nullable Rect sourceCrop) { + if (sourceCrop == null) { + mSourceCrop.setEmpty(); + } else { + mSourceCrop.set(sourceCrop); + } return getThis(); } @@ -2355,8 +2359,8 @@ public final class SurfaceControl implements Parcelable { * @return Returns a HardwareBuffer that contains the layer capture. * @hide */ - public static ScreenshotHardwareBuffer captureLayers(SurfaceControl layer, Rect sourceCrop, - float frameScale, int format) { + public static ScreenshotHardwareBuffer captureLayers(@NonNull SurfaceControl layer, + @Nullable Rect sourceCrop, float frameScale, int format) { LayerCaptureArgs captureArgs = new LayerCaptureArgs.Builder(layer) .setSourceCrop(sourceCrop) .setFrameScale(frameScale)