Using parent windowId instead

AccessibilityWindowManager would get null interactive region since
embedded hierarchy doesn't have window. Because interactive region
is null, A11yInteractionController#adjustIsVisibleToUserIfNeeded
wouldn't adjust its visibility to false. This results in that the
visibility of A11yNodeInfo on embedded hierarchy may be incorrect.

Bug: 151203875
Test: a11y CTS & unit tests
Change-Id: I7d61a15994bf726e708e597d0363904fdb32f183
This commit is contained in:
Jackal Guo
2020-03-11 18:27:08 +08:00
parent 2a77f43bee
commit 8681ea30eb

View File

@@ -1232,6 +1232,7 @@ public class AccessibilityWindowManager {
*/
public boolean computePartialInteractiveRegionForWindowLocked(int windowId,
@NonNull Region outRegion) {
windowId = resolveParentWindowIdLocked(windowId);
final DisplayWindowsObserver observer = getDisplayWindowObserverByWindowIdLocked(windowId);
if (observer != null) {
return observer.computePartialInteractiveRegionForWindowLocked(windowId, outRegion);
@@ -1436,6 +1437,7 @@ public class AccessibilityWindowManager {
*/
@Nullable
public WindowInfo findWindowInfoByIdLocked(int windowId) {
windowId = resolveParentWindowIdLocked(windowId);
final DisplayWindowsObserver observer = getDisplayWindowObserverByWindowIdLocked(windowId);
if (observer != null) {
return observer.findWindowInfoByIdLocked(windowId);