Update callers for making CaptureArgs structured aidl
Bug: 329465218
Flag: EXEMPT mechanical refactor
Test: builds
Test: courage
Change-Id: I760379d8271bf764d033eb14cc2e48944337d80a
diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp
index 7e4f95b..01b20f4 100644
--- a/cmds/screencap/screencap.cpp
+++ b/cmds/screencap/screencap.cpp
@@ -14,6 +14,9 @@
* limitations under the License.
*/
+#include <android/bitmap.h>
+#include <android/gui/DisplayCaptureArgs.h>
+#include <binder/ProcessState.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
@@ -33,7 +36,6 @@
#include <ftl/concat.h>
#include <ftl/optional.h>
-#include <gui/DisplayCaptureArgs.h>
#include <gui/ISurfaceComposer.h>
#include <gui/SurfaceComposerClient.h>
#include <gui/SyncScreenCaptureListener.h>
diff --git a/core/jni/android_window_ScreenCapture.cpp b/core/jni/android_window_ScreenCapture.cpp
index 1031542..b1a2cea 100644
--- a/core/jni/android_window_ScreenCapture.cpp
+++ b/core/jni/android_window_ScreenCapture.cpp
@@ -19,6 +19,7 @@
#include <android/gui/BnScreenCaptureListener.h>
#include <android_runtime/android_hardware_HardwareBuffer.h>
+#include <gui/AidlStatusUtil.h>
#include <gui/SurfaceComposerClient.h>
#include <jni.h>
#include <nativehelper/JNIHelp.h>
@@ -141,12 +142,13 @@
};
static void getCaptureArgs(JNIEnv* env, jobject captureArgsObject, CaptureArgs& captureArgs) {
- captureArgs.pixelFormat = static_cast<ui::PixelFormat>(
+ captureArgs.pixelFormat = static_cast<int32_t>(
env->GetIntField(captureArgsObject, gCaptureArgsClassInfo.pixelFormat));
- captureArgs.sourceCrop =
+ const auto sourceCrop =
JNICommon::rectFromObj(env,
env->GetObjectField(captureArgsObject,
gCaptureArgsClassInfo.sourceCrop));
+ captureArgs.sourceCrop = gui::aidl_utils::toARect(sourceCrop);
captureArgs.frameScaleX =
env->GetFloatField(captureArgsObject, gCaptureArgsClassInfo.frameScaleX);
captureArgs.frameScaleY =
@@ -172,7 +174,7 @@
jniThrowNullPointerException(env, "Exclude layer is null");
return;
}
- captureArgs.excludeHandles.emplace(excludeObject->getHandle());
+ captureArgs.excludeHandles.emplace_back(excludeObject->getHandle());
}
}
captureArgs.hintForSeamlessTransition =
@@ -182,18 +184,18 @@
static DisplayCaptureArgs displayCaptureArgsFromObject(JNIEnv* env,
jobject displayCaptureArgsObject) {
- DisplayCaptureArgs captureArgs;
- getCaptureArgs(env, displayCaptureArgsObject, captureArgs);
+ DisplayCaptureArgs displayCaptureArgs;
+ getCaptureArgs(env, displayCaptureArgsObject, displayCaptureArgs.captureArgs);
- captureArgs.displayToken =
+ displayCaptureArgs.displayToken =
ibinderForJavaObject(env,
env->GetObjectField(displayCaptureArgsObject,
gDisplayCaptureArgsClassInfo.displayToken));
- captureArgs.width =
+ displayCaptureArgs.width =
env->GetIntField(displayCaptureArgsObject, gDisplayCaptureArgsClassInfo.width);
- captureArgs.height =
+ displayCaptureArgs.height =
env->GetIntField(displayCaptureArgsObject, gDisplayCaptureArgsClassInfo.height);
- return captureArgs;
+ return displayCaptureArgs;
}
static jint nativeCaptureDisplay(JNIEnv* env, jclass clazz, jobject displayCaptureArgsObject,
@@ -212,8 +214,8 @@
static jint nativeCaptureLayers(JNIEnv* env, jclass clazz, jobject layerCaptureArgsObject,
jlong screenCaptureListenerObject, jboolean sync) {
- LayerCaptureArgs captureArgs;
- getCaptureArgs(env, layerCaptureArgsObject, captureArgs);
+ LayerCaptureArgs layerCaptureArgs;
+ getCaptureArgs(env, layerCaptureArgsObject, layerCaptureArgs.captureArgs);
SurfaceControl* layer = reinterpret_cast<SurfaceControl*>(
env->GetLongField(layerCaptureArgsObject, gLayerCaptureArgsClassInfo.layer));
@@ -221,13 +223,13 @@
return BAD_VALUE;
}
- captureArgs.layerHandle = layer->getHandle();
- captureArgs.childrenOnly =
+ layerCaptureArgs.layerHandle = layer->getHandle();
+ layerCaptureArgs.childrenOnly =
env->GetBooleanField(layerCaptureArgsObject, gLayerCaptureArgsClassInfo.childrenOnly);
sp<gui::IScreenCaptureListener> captureListener =
reinterpret_cast<gui::IScreenCaptureListener*>(screenCaptureListenerObject);
- return ScreenshotClient::captureLayers(captureArgs, captureListener, sync);
+ return ScreenshotClient::captureLayers(layerCaptureArgs, captureListener, sync);
}
static jlong nativeCreateScreenCaptureListener(JNIEnv* env, jclass clazz, jobject consumerObj) {