From 11a6929c42e2124e57becdda7d6a675b849696a1 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 9 Dec 2021 16:13:09 -0800 Subject: [PATCH] Fix A11y on PipMenuView Ensure the shell root accessibility window is set to null when PiP menu state is NONE (invisible). Bug: 208880253 Test: manual, ensure SwitchAccess and TalkBack can access PiP menu Change-Id: I404ea74069ca9052f165198a8d7f9abdd55dbdb2 --- .../android/wm/shell/pip/phone/PhonePipMenuController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java index eb512afa644d4..101a55d8d3677 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java @@ -191,6 +191,7 @@ public class PhonePipMenuController implements PipMenuController { mSystemWindows.addView(mPipMenuView, getPipMenuLayoutParams(MENU_WINDOW_TITLE, 0 /* width */, 0 /* height */), 0, SHELL_ROOT_LAYER_PIP); + setShellRootAccessibilityWindow(); } private void detachPipMenuView() { @@ -546,6 +547,10 @@ public class PhonePipMenuController implements PipMenuController { mListeners.forEach(l -> l.onPipMenuStateChangeFinish(menuState)); } mMenuState = menuState; + setShellRootAccessibilityWindow(); + } + + private void setShellRootAccessibilityWindow() { switch (mMenuState) { case MENU_STATE_NONE: mSystemWindows.setShellRootAccessibilityWindow(0, SHELL_ROOT_LAYER_PIP, null);