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
This commit is contained in:
chaviw
2021-09-10 13:40:21 -05:00
committed by Chavi Weingarten
parent 5c554e289b
commit 1dc168ad2c
2 changed files with 10 additions and 0 deletions

View File

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

View File

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