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

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

Introduction

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

Prototype

public boolean hasSubMenu() 

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  ava2  s  .com

    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  ww  w.  j  a  v  a  2s.c  om

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