Example usage for android.support.v4.view ActionProvider onPrepareSubMenu

List of usage examples for android.support.v4.view ActionProvider onPrepareSubMenu

Introduction

In this page you can find the example usage for android.support.v4.view ActionProvider onPrepareSubMenu.

Prototype

public void onPrepareSubMenu(SubMenu subMenu) 

Source Link

Usage

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;
}