Merge "Fix a bug where OnTouchListeners in action views could be removed" into klp-modular-dev

This commit is contained in:
Adam Powell
2014-01-10 18:30:22 +00:00
committed by Android (Google) Code Review

View File

@ -164,8 +164,24 @@ public class ActionMenuPresenter extends BaseMenuPresenter
} }
actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE); actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE);
final ActionMenuView menuParent = (ActionMenuView) parent;
final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
if (!menuParent.checkLayoutParams(lp)) {
actionView.setLayoutParams(menuParent.generateLayoutParams(lp));
}
return actionView;
}
@Override
public void bindItemView(final MenuItemImpl item, MenuView.ItemView itemView) {
itemView.initialize(item, 0);
final ActionMenuView menuView = (ActionMenuView) mMenuView;
final ActionMenuItemView actionItemView = (ActionMenuItemView) itemView;
actionItemView.setItemInvoker(menuView);
if (item.hasSubMenu()) { if (item.hasSubMenu()) {
actionView.setOnTouchListener(new ForwardingListener(actionView) { actionItemView.setOnTouchListener(new ForwardingListener(actionItemView) {
@Override @Override
public ListPopupWindow getPopup() { public ListPopupWindow getPopup() {
return mActionButtonPopup != null ? mActionButtonPopup.getPopup() : null; return mActionButtonPopup != null ? mActionButtonPopup.getPopup() : null;
@ -182,24 +198,8 @@ public class ActionMenuPresenter extends BaseMenuPresenter
} }
}); });
} else { } else {
actionView.setOnTouchListener(null); actionItemView.setOnTouchListener(null);
} }
final ActionMenuView menuParent = (ActionMenuView) parent;
final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
if (!menuParent.checkLayoutParams(lp)) {
actionView.setLayoutParams(menuParent.generateLayoutParams(lp));
}
return actionView;
}
@Override
public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) {
itemView.initialize(item, 0);
final ActionMenuView menuView = (ActionMenuView) mMenuView;
ActionMenuItemView actionItemView = (ActionMenuItemView) itemView;
actionItemView.setItemInvoker(menuView);
} }
@Override @Override