Allow a null Rect to be passed as sourceCrop

The documenation of SurfaceControl.captureLayers() allows for a null
Rect for the sourceCrop,
but SurfaceControl.CaptureArgs.Builder#setSourceCrop only allows
for NonNull parameter.

Test: Builds
Fixes: 201993205
Change-Id: I5411630bd787dc7be9d7e253363a030b16fdd9fc
This commit is contained in:
Vadim Caen
2021-10-04 15:33:08 +02:00
parent e598ab96e2
commit fef1a1347b

View File

@@ -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)