List of usage examples for android.support.v4.view ActionProvider onPrepareSubMenu
public void onPrepareSubMenu(SubMenu subMenu)
From source file:android.support.v7.internal.view.menu.MenuBuilder.java
public boolean performItemAction(MenuItem item, MenuPresenter preferredPresenter, int flags) { MenuItemImpl itemImpl = (MenuItemImpl) item; if (itemImpl == null || !itemImpl.isEnabled()) { return false; }//from w w w . j a v a 2 s . c o m boolean invoked = itemImpl.invoke(); final ActionProvider provider = itemImpl.getSupportActionProvider(); final boolean providerHasSubMenu = provider != null && provider.hasSubMenu(); if (itemImpl.hasCollapsibleActionView()) { invoked |= itemImpl.expandActionView(); if (invoked) close(true); } else if (itemImpl.hasSubMenu() || providerHasSubMenu) { close(false); if (!itemImpl.hasSubMenu()) { itemImpl.setSubMenu(new SubMenuBuilder(getContext(), this, itemImpl)); } final SubMenuBuilder subMenu = (SubMenuBuilder) itemImpl.getSubMenu(); if (providerHasSubMenu) { provider.onPrepareSubMenu(subMenu); } invoked |= dispatchSubMenuSelected(subMenu, preferredPresenter); if (!invoked) close(true); } else { if ((flags & FLAG_PERFORM_NO_CLOSE) == 0) { close(true); } } return invoked; }
From source file:android.support.v7.view.menu.MenuBuilder.java
public boolean performItemAction(MenuItem item, MenuPresenter preferredPresenter, int flags) { MenuItemImpl itemImpl = (MenuItemImpl) item; if (itemImpl == null || !itemImpl.isEnabled()) { return false; }//from w ww . j av a 2 s .c o m boolean invoked = itemImpl.invoke(); final ActionProvider provider = itemImpl.getSupportActionProvider(); final boolean providerHasSubMenu = provider != null && provider.hasSubMenu(); if (itemImpl.hasCollapsibleActionView()) { invoked |= itemImpl.expandActionView(); if (invoked) { close(true /* closeAllMenus */); } } else if (itemImpl.hasSubMenu() || providerHasSubMenu) { if (!itemImpl.hasSubMenu()) { itemImpl.setSubMenu(new SubMenuBuilder(getContext(), this, itemImpl)); } final SubMenuBuilder subMenu = (SubMenuBuilder) itemImpl.getSubMenu(); if (providerHasSubMenu) { provider.onPrepareSubMenu(subMenu); } invoked |= dispatchSubMenuSelected(subMenu, preferredPresenter); if (!invoked) { close(true /* closeAllMenus */); } } else { if ((flags & FLAG_PERFORM_NO_CLOSE) == 0) { close(true /* closeAllMenus */); } } return invoked; }