Loading core/java/com/android/internal/view/menu/MenuDialogHelper.java +11 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, private MenuBuilder mMenu; private AlertDialog mDialog; ListMenuPresenter mPresenter; private MenuPresenter.Callback mPresenterCallback; public MenuDialogHelper(MenuBuilder menu) { mMenu = menu; Loading Loading @@ -124,6 +125,10 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, } public void setPresenterCallback(MenuPresenter.Callback cb) { mPresenterCallback = cb; } /** * Dismisses the menu's dialog. * Loading @@ -145,10 +150,16 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, if (allMenusAreClosing || menu == mMenu) { dismiss(); } if (mPresenterCallback != null) { mPresenterCallback.onCloseMenu(menu, allMenusAreClosing); } } @Override public boolean onOpenSubMenu(MenuBuilder subMenu) { if (mPresenterCallback != null) { return mPresenterCallback.onOpenSubMenu(subMenu); } return false; } Loading policy/src/com/android/internal/policy/impl/PhoneWindow.java +14 −5 Original line number Diff line number Diff line Loading @@ -1962,8 +1962,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mContextMenu.clearAll(); } mContextMenuHelper = mContextMenu.show(originalView, originalView.getWindowToken()); return mContextMenuHelper != null; final MenuDialogHelper helper = mContextMenu.show(originalView, originalView.getWindowToken()); if (helper != null) { helper.setPresenterCallback(mContextMenuCallback); } mContextMenuHelper = helper; return helper != null; } @Override Loading Loading @@ -3171,7 +3176,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { * <li> Calls back to the callback's onMenuItemSelected when an item is * selected. */ private final class DialogMenuCallback implements MenuBuilder.Callback { private final class DialogMenuCallback implements MenuBuilder.Callback, MenuPresenter.Callback { private int mFeatureId; private MenuDialogHelper mSubMenuHelper; Loading @@ -3180,6 +3185,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { if (menu.getRootMenu() != menu) { onCloseSubMenu(menu); } if (allMenusAreClosing) { Callback callback = getCallback(); if (callback != null && !isDestroyed()) { Loading @@ -3198,7 +3207,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } public void onCloseSubMenu(SubMenuBuilder menu) { public void onCloseSubMenu(MenuBuilder menu) { Callback callback = getCallback(); if (callback != null && !isDestroyed()) { callback.onPanelClosed(mFeatureId, menu.getRootMenu()); Loading @@ -3214,7 +3223,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { public void onMenuModeChange(MenuBuilder menu) { } public boolean onSubMenuSelected(SubMenuBuilder subMenu) { public boolean onOpenSubMenu(MenuBuilder subMenu) { // Set a simple callback for the submenu subMenu.setCallback(this); Loading Loading
core/java/com/android/internal/view/menu/MenuDialogHelper.java +11 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, private MenuBuilder mMenu; private AlertDialog mDialog; ListMenuPresenter mPresenter; private MenuPresenter.Callback mPresenterCallback; public MenuDialogHelper(MenuBuilder menu) { mMenu = menu; Loading Loading @@ -124,6 +125,10 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, } public void setPresenterCallback(MenuPresenter.Callback cb) { mPresenterCallback = cb; } /** * Dismisses the menu's dialog. * Loading @@ -145,10 +150,16 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener, if (allMenusAreClosing || menu == mMenu) { dismiss(); } if (mPresenterCallback != null) { mPresenterCallback.onCloseMenu(menu, allMenusAreClosing); } } @Override public boolean onOpenSubMenu(MenuBuilder subMenu) { if (mPresenterCallback != null) { return mPresenterCallback.onOpenSubMenu(subMenu); } return false; } Loading
policy/src/com/android/internal/policy/impl/PhoneWindow.java +14 −5 Original line number Diff line number Diff line Loading @@ -1962,8 +1962,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mContextMenu.clearAll(); } mContextMenuHelper = mContextMenu.show(originalView, originalView.getWindowToken()); return mContextMenuHelper != null; final MenuDialogHelper helper = mContextMenu.show(originalView, originalView.getWindowToken()); if (helper != null) { helper.setPresenterCallback(mContextMenuCallback); } mContextMenuHelper = helper; return helper != null; } @Override Loading Loading @@ -3171,7 +3176,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { * <li> Calls back to the callback's onMenuItemSelected when an item is * selected. */ private final class DialogMenuCallback implements MenuBuilder.Callback { private final class DialogMenuCallback implements MenuBuilder.Callback, MenuPresenter.Callback { private int mFeatureId; private MenuDialogHelper mSubMenuHelper; Loading @@ -3180,6 +3185,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { if (menu.getRootMenu() != menu) { onCloseSubMenu(menu); } if (allMenusAreClosing) { Callback callback = getCallback(); if (callback != null && !isDestroyed()) { Loading @@ -3198,7 +3207,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } public void onCloseSubMenu(SubMenuBuilder menu) { public void onCloseSubMenu(MenuBuilder menu) { Callback callback = getCallback(); if (callback != null && !isDestroyed()) { callback.onPanelClosed(mFeatureId, menu.getRootMenu()); Loading @@ -3214,7 +3223,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { public void onMenuModeChange(MenuBuilder menu) { } public boolean onSubMenuSelected(SubMenuBuilder subMenu) { public boolean onOpenSubMenu(MenuBuilder subMenu) { // Set a simple callback for the submenu subMenu.setCallback(this); Loading