From f4d1b629a8a9a94ca0f43537eb36a38308c4f709 Mon Sep 17 00:00:00 2001 From: Alec Mouri Date: Tue, 6 Aug 2024 14:56:34 +0000 Subject: Update callers for making CaptureArgs structured aidl Bug: 329465218 Flag: EXEMPT mechanical refactor Test: builds Test: courage Change-Id: I760379d8271bf764d033eb14cc2e48944337d80a --- cmds/screencap/screencap.cpp | 4 +++- core/jni/android_window_ScreenCapture.cpp | 30 ++++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp index 7e4f95bc9274..01b20f4a5267 100644 --- a/cmds/screencap/screencap.cpp +++ b/cmds/screencap/screencap.cpp @@ -14,6 +14,9 @@ * limitations under the License. */ +#include +#include +#include #include #include #include @@ -33,7 +36,6 @@ #include #include -#include #include #include #include diff --git a/core/jni/android_window_ScreenCapture.cpp b/core/jni/android_window_ScreenCapture.cpp index 1031542eb2e6..b1a2cea1ab5c 100644 --- a/core/jni/android_window_ScreenCapture.cpp +++ b/core/jni/android_window_ScreenCapture.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -141,12 +142,13 @@ private: }; static void getCaptureArgs(JNIEnv* env, jobject captureArgsObject, CaptureArgs& captureArgs) { - captureArgs.pixelFormat = static_cast( + captureArgs.pixelFormat = static_cast( 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 @@ static void getCaptureArgs(JNIEnv* env, jobject captureArgsObject, CaptureArgs& 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 void getCaptureArgs(JNIEnv* env, jobject captureArgsObject, CaptureArgs& 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 nativeCaptureDisplay(JNIEnv* env, jclass clazz, jobject displayCaptu 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( env->GetLongField(layerCaptureArgsObject, gLayerCaptureArgsClassInfo.layer)); @@ -221,13 +223,13 @@ static jint nativeCaptureLayers(JNIEnv* env, jclass clazz, jobject layerCaptureA return BAD_VALUE; } - captureArgs.layerHandle = layer->getHandle(); - captureArgs.childrenOnly = + layerCaptureArgs.layerHandle = layer->getHandle(); + layerCaptureArgs.childrenOnly = env->GetBooleanField(layerCaptureArgsObject, gLayerCaptureArgsClassInfo.childrenOnly); sp captureListener = reinterpret_cast(screenCaptureListenerObject); - return ScreenshotClient::captureLayers(captureArgs, captureListener, sync); + return ScreenshotClient::captureLayers(layerCaptureArgs, captureListener, sync); } static jlong nativeCreateScreenCaptureListener(JNIEnv* env, jclass clazz, jobject consumerObj) { -- cgit v1.2.3-59-g8ed1b