Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/SystemWindows.java +29 −8 Original line number Diff line number Diff line Loading @@ -133,6 +133,18 @@ public class SystemWindows { root.relayout((WindowManager.LayoutParams) params); } /** * Sets the accessibility window for the given {@param shellRootLayer}. */ public void setShellRootAccessibilityWindow(int displayId, @WindowManager.ShellRootLayer int shellRootLayer, View view) { PerDisplay pd = mPerDisplay.get(displayId); if (pd == null) { return; } pd.setShellRootAccessibilityWindow(shellRootLayer, view); } /** * Sets the touchable region of a view's window. This will be cropped to the window size. * @param view Loading Loading @@ -202,15 +214,9 @@ public class SystemWindows { attrs.flags |= FLAG_HARDWARE_ACCELERATED; viewRoot.setView(view, attrs); mViewRoots.put(view, viewRoot); try { mWmService.setShellRootAccessibilityWindow(mDisplayId, shellRootLayer, viewRoot.getWindowToken()); } catch (RemoteException e) { Slog.e(TAG, "Error setting accessibility window for " + mDisplayId + ":" + shellRootLayer, e); } setShellRootAccessibilityWindow(shellRootLayer, view); } SysUiWindowManager addRoot(@WindowManager.ShellRootLayer int shellRootLayer) { SysUiWindowManager wwm = mWwms.get(shellRootLayer); if (wwm != null) { Loading Loading @@ -240,6 +246,21 @@ public class SystemWindows { return wwm.mContainerWindow; } void setShellRootAccessibilityWindow(@WindowManager.ShellRootLayer int shellRootLayer, View view) { SysUiWindowManager wwm = mWwms.get(shellRootLayer); if (wwm == null) { return; } try { mWmService.setShellRootAccessibilityWindow(mDisplayId, shellRootLayer, view != null ? mViewRoots.get(view).getWindowToken() : null); } catch (RemoteException e) { Slog.e(TAG, "Error setting accessibility window for " + mDisplayId + ":" + shellRootLayer, e); } } void updateConfiguration(Configuration configuration) { for (int i = 0; i < mWwms.size(); ++i) { mWwms.valueAt(i).updateConfiguration(configuration); Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java +9 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,15 @@ public class PhonePipMenuController implements PipMenuController { mListeners.forEach(l -> l.onPipMenuStateChangeFinish(menuState)); } mMenuState = menuState; switch (mMenuState) { case MENU_STATE_NONE: mSystemWindows.setShellRootAccessibilityWindow(0, SHELL_ROOT_LAYER_PIP, null); break; default: mSystemWindows.setShellRootAccessibilityWindow(0, SHELL_ROOT_LAYER_PIP, mPipMenuView); break; } } /** Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/SystemWindows.java +29 −8 Original line number Diff line number Diff line Loading @@ -133,6 +133,18 @@ public class SystemWindows { root.relayout((WindowManager.LayoutParams) params); } /** * Sets the accessibility window for the given {@param shellRootLayer}. */ public void setShellRootAccessibilityWindow(int displayId, @WindowManager.ShellRootLayer int shellRootLayer, View view) { PerDisplay pd = mPerDisplay.get(displayId); if (pd == null) { return; } pd.setShellRootAccessibilityWindow(shellRootLayer, view); } /** * Sets the touchable region of a view's window. This will be cropped to the window size. * @param view Loading Loading @@ -202,15 +214,9 @@ public class SystemWindows { attrs.flags |= FLAG_HARDWARE_ACCELERATED; viewRoot.setView(view, attrs); mViewRoots.put(view, viewRoot); try { mWmService.setShellRootAccessibilityWindow(mDisplayId, shellRootLayer, viewRoot.getWindowToken()); } catch (RemoteException e) { Slog.e(TAG, "Error setting accessibility window for " + mDisplayId + ":" + shellRootLayer, e); } setShellRootAccessibilityWindow(shellRootLayer, view); } SysUiWindowManager addRoot(@WindowManager.ShellRootLayer int shellRootLayer) { SysUiWindowManager wwm = mWwms.get(shellRootLayer); if (wwm != null) { Loading Loading @@ -240,6 +246,21 @@ public class SystemWindows { return wwm.mContainerWindow; } void setShellRootAccessibilityWindow(@WindowManager.ShellRootLayer int shellRootLayer, View view) { SysUiWindowManager wwm = mWwms.get(shellRootLayer); if (wwm == null) { return; } try { mWmService.setShellRootAccessibilityWindow(mDisplayId, shellRootLayer, view != null ? mViewRoots.get(view).getWindowToken() : null); } catch (RemoteException e) { Slog.e(TAG, "Error setting accessibility window for " + mDisplayId + ":" + shellRootLayer, e); } } void updateConfiguration(Configuration configuration) { for (int i = 0; i < mWwms.size(); ++i) { mWwms.valueAt(i).updateConfiguration(configuration); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java +9 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,15 @@ public class PhonePipMenuController implements PipMenuController { mListeners.forEach(l -> l.onPipMenuStateChangeFinish(menuState)); } mMenuState = menuState; switch (mMenuState) { case MENU_STATE_NONE: mSystemWindows.setShellRootAccessibilityWindow(0, SHELL_ROOT_LAYER_PIP, null); break; default: mSystemWindows.setShellRootAccessibilityWindow(0, SHELL_ROOT_LAYER_PIP, mPipMenuView); break; } } /** Loading