Merge "Add drag-to-open for action bar submenus" into klp-dev

This commit is contained in:
Alan Viverette
2013-09-09 17:24:04 +00:00
committed by Android (Google) Code Review

View File

@@ -156,7 +156,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
}
@Override
public View getItemView(MenuItemImpl item, View convertView, ViewGroup parent) {
public View getItemView(final MenuItemImpl item, View convertView, ViewGroup parent) {
View actionView = item.getActionView();
if (actionView == null || item.hasCollapsibleActionView()) {
if (!(convertView instanceof ActionMenuItemView)) {
@@ -166,6 +166,27 @@ public class ActionMenuPresenter extends BaseMenuPresenter
}
actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE);
if (item.hasSubMenu()) {
actionView.setOnTouchListener(new ForwardingListener(actionView) {
@Override
public ListPopupWindow getPopup() {
return mActionButtonPopup != null ? mActionButtonPopup.getPopup() : null;
}
@Override
protected boolean onForwardingStarted() {
return onSubMenuSelected((SubMenuBuilder) item.getSubMenu());
}
@Override
protected boolean onForwardingStopped() {
return dismissPopupMenus();
}
});
} else {
actionView.setOnTouchListener(null);
}
final ActionMenuView menuParent = (ActionMenuView) parent;
final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
if (!menuParent.checkLayoutParams(lp)) {