From e777b75d4c8506f5fbb39f5f219456ebbe1eed30 Mon Sep 17 00:00:00 2001 From: chaviw Date: Wed, 1 Jun 2022 16:26:13 -0500 Subject: [PATCH] Convert to using inputConfig for clone info in WindowInfo Remove explicit isClone flag and add CLONE to InputConfig Test: Builds Bug: 230300971 Change-Id: Iced894472c75bf2ef22618b9e7485d1978d88be2 --- core/java/android/view/InputWindowHandle.java | 8 ++------ core/jni/android_hardware_input_InputWindowHandle.cpp | 5 ----- .../android/server/wm/AccessibilityWindowsPopulator.java | 3 ++- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/core/java/android/view/InputWindowHandle.java b/core/java/android/view/InputWindowHandle.java index 2922ad6ff6a87..406f446156a94 100644 --- a/core/java/android/view/InputWindowHandle.java +++ b/core/java/android/view/InputWindowHandle.java @@ -64,6 +64,7 @@ public final class InputWindowHandle { InputConfig.DISABLE_USER_ACTIVITY, InputConfig.SPY, InputConfig.INTERCEPTS_STYLUS, + InputConfig.CLONE, }) public @interface InputConfigFlags {} @@ -157,11 +158,6 @@ 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) { @@ -210,7 +206,7 @@ public final class InputWindowHandle { .append(", scaleFactor=").append(scaleFactor) .append(", transform=").append(transform) .append(", windowToken=").append(windowToken) - .append(", isClone=").append(isClone) + .append(", isClone=").append((inputConfig & InputConfig.CLONE) != 0) .toString(); } diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp index 2eb2e38d01352..241320f317486 100644 --- a/core/jni/android_hardware_input_InputWindowHandle.cpp +++ b/core/jni/android_hardware_input_InputWindowHandle.cpp @@ -74,7 +74,6 @@ static struct { WeakRefHandleField touchableRegionSurfaceControl; jfieldID transform; jfieldID windowToken; - jfieldID isClone; } gInputWindowHandleClassInfo; static struct { @@ -318,8 +317,6 @@ 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; } @@ -436,8 +433,6 @@ 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"); diff --git a/services/core/java/com/android/server/wm/AccessibilityWindowsPopulator.java b/services/core/java/com/android/server/wm/AccessibilityWindowsPopulator.java index 3b4aa8e6b701d..ccf000e44abdf 100644 --- a/services/core/java/com/android/server/wm/AccessibilityWindowsPopulator.java +++ b/services/core/java/com/android/server/wm/AccessibilityWindowsPopulator.java @@ -154,7 +154,8 @@ public final class AccessibilityWindowsPopulator extends WindowInfosListener { for (InputWindowHandle window : windowHandles) { final boolean visible = (window.inputConfig & InputConfig.NOT_VISIBLE) == 0; - if (visible && window.getWindow() != null && !window.isClone) { + final boolean isNotClone = (window.inputConfig & InputConfig.CLONE) == 0; + if (visible && window.getWindow() != null && isNotClone) { tempVisibleWindows.add(window); } }