From 1dc168ad2cf2774c3f03e67ed938ab876bc3c42d Mon Sep 17 00:00:00 2001 From: chaviw Date: Fri, 10 Sep 2021 13:40:21 -0500 Subject: Add isClone to InputWindowHandle Add a flag about whether the window is a clone to help identity the original windows vs clones Test: Builds Bug: 230300971 Change-Id: Iac006d73d2e0100b5f8261a30a1dd2ff3f1bae88 --- core/java/android/view/InputWindowHandle.java | 5 +++++ core/jni/android_hardware_input_InputWindowHandle.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/core/java/android/view/InputWindowHandle.java b/core/java/android/view/InputWindowHandle.java index 12f30f1f05c3..0b05d94663cc 100644 --- a/core/java/android/view/InputWindowHandle.java +++ b/core/java/android/view/InputWindowHandle.java @@ -157,6 +157,11 @@ public final class InputWindowHandle { */ public Matrix transform; + /** + * Whether this window is a clone or the original window. + */ + public boolean isClone; + private native void nativeDispose(); public InputWindowHandle(InputApplicationHandle inputApplicationHandle, int displayId) { diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp index 241320f31748..2eb2e38d0135 100644 --- a/core/jni/android_hardware_input_InputWindowHandle.cpp +++ b/core/jni/android_hardware_input_InputWindowHandle.cpp @@ -74,6 +74,7 @@ static struct { WeakRefHandleField touchableRegionSurfaceControl; jfieldID transform; jfieldID windowToken; + jfieldID isClone; } gInputWindowHandleClassInfo; static struct { @@ -317,6 +318,8 @@ jobject android_view_InputWindowHandle_fromWindowInfo(JNIEnv* env, gui::WindowIn env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.windowToken, javaObjectForIBinder(env, windowInfo.windowToken)); + env->SetBooleanField(inputWindowHandle, gInputWindowHandleClassInfo.isClone, + windowInfo.isClone); return inputWindowHandle; } @@ -433,6 +436,8 @@ int register_android_view_InputWindowHandle(JNIEnv* env) { GET_FIELD_ID(gInputWindowHandleClassInfo.windowToken, clazz, "windowToken", "Landroid/os/IBinder;"); + GET_FIELD_ID(gInputWindowHandleClassInfo.isClone, clazz, "isClone", "Z"); + jclass weakRefClazz; FIND_CLASS(weakRefClazz, "java/lang/ref/Reference"); -- cgit v1.2.3-59-g8ed1b