Added ScreenCaptureListener to allow for screenshot request callbacks
Added boiler plate code to send a listener to the screenshot requests to
allow screenshots to be async.
Test: LayerStateTest
Bug: 162367424
Change-Id: I747e7316364a145bed6a920d72a592e493ca0029
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
index 62f7c23..3b0b392 100644
--- a/libs/gui/LayerState.cpp
+++ b/libs/gui/LayerState.cpp
@@ -607,19 +607,31 @@
}
status_t ScreenCaptureResults::write(Parcel& output) const {
- SAFE_PARCEL(output.write, *buffer);
+ if (buffer != nullptr) {
+ SAFE_PARCEL(output.writeBool, true);
+ SAFE_PARCEL(output.write, *buffer);
+ } else {
+ SAFE_PARCEL(output.writeBool, false);
+ }
SAFE_PARCEL(output.writeBool, capturedSecureLayers);
SAFE_PARCEL(output.writeUint32, static_cast<uint32_t>(capturedDataspace));
+ SAFE_PARCEL(output.writeInt32, result);
return NO_ERROR;
}
status_t ScreenCaptureResults::read(const Parcel& input) {
- buffer = new GraphicBuffer();
- SAFE_PARCEL(input.read, *buffer);
+ bool hasGraphicBuffer;
+ SAFE_PARCEL(input.readBool, &hasGraphicBuffer);
+ if (hasGraphicBuffer) {
+ buffer = new GraphicBuffer();
+ SAFE_PARCEL(input.read, *buffer);
+ }
+
SAFE_PARCEL(input.readBool, &capturedSecureLayers);
uint32_t dataspace = 0;
SAFE_PARCEL(input.readUint32, &dataspace);
capturedDataspace = static_cast<ui::Dataspace>(dataspace);
+ SAFE_PARCEL(input.readInt32, &result);
return NO_ERROR;
}