am e48d12b7: Merge "Fix ActionProviders that have submenus" into jb-dev

* commit 'e48d12b78011ff5ddbb6838a038ea5384190ec92':
  Fix ActionProviders that have submenus
This commit is contained in:
Adam Powell
2012-05-15 11:31:13 -07:00
committed by Android Git Automerger

View File

@@ -873,15 +873,20 @@ public class MenuBuilder implements Menu {
boolean invoked = itemImpl.invoke();
final ActionProvider provider = item.getActionProvider();
final boolean providerHasSubMenu = provider != null && provider.hasSubMenu();
if (itemImpl.hasCollapsibleActionView()) {
invoked |= itemImpl.expandActionView();
if (invoked) close(true);
} else if (item.hasSubMenu()) {
} else if (itemImpl.hasSubMenu() || providerHasSubMenu) {
close(false);
final SubMenuBuilder subMenu = (SubMenuBuilder) item.getSubMenu();
final ActionProvider provider = item.getActionProvider();
if (provider != null && provider.hasSubMenu()) {
if (!itemImpl.hasSubMenu()) {
itemImpl.setSubMenu(new SubMenuBuilder(getContext(), this, itemImpl));
}
final SubMenuBuilder subMenu = (SubMenuBuilder) itemImpl.getSubMenu();
if (providerHasSubMenu) {
provider.onPrepareSubMenu(subMenu);
}
invoked |= dispatchSubMenuSelected(subMenu);