Merge "Menu callbacks for ToolbarActionBars, part 2" into lmp-dev
This commit is contained in:
@@ -55,6 +55,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
|
||||
private boolean mReserveOverflow;
|
||||
private ActionMenuPresenter mPresenter;
|
||||
private MenuPresenter.Callback mActionMenuPresenterCallback;
|
||||
private MenuBuilder.Callback mMenuBuilderCallback;
|
||||
private boolean mFormatItems;
|
||||
private int mFormatItemsWidth;
|
||||
private int mMinCellSize;
|
||||
@@ -623,8 +624,9 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
|
||||
* Must be called before the first call to getMenu()
|
||||
* @hide
|
||||
*/
|
||||
public void setActionMenuPresenterCallback(MenuPresenter.Callback cb) {
|
||||
mActionMenuPresenterCallback = cb;
|
||||
public void setMenuCallbacks(MenuPresenter.Callback pcb, MenuBuilder.Callback mcb) {
|
||||
mActionMenuPresenterCallback = pcb;
|
||||
mMenuBuilderCallback = mcb;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -730,6 +732,9 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
|
||||
|
||||
@Override
|
||||
public void onMenuModeChange(MenuBuilder menu) {
|
||||
if (mMenuBuilderCallback != null) {
|
||||
mMenuBuilderCallback.onMenuModeChange(menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ public class Toolbar extends ViewGroup {
|
||||
private ActionMenuPresenter mOuterActionMenuPresenter;
|
||||
private ExpandedActionViewMenuPresenter mExpandedMenuPresenter;
|
||||
private MenuPresenter.Callback mActionMenuPresenterCallback;
|
||||
private MenuBuilder.Callback mMenuBuilderCallback;
|
||||
|
||||
private boolean mCollapsible;
|
||||
|
||||
@@ -827,7 +828,7 @@ public class Toolbar extends ViewGroup {
|
||||
mMenuView = new ActionMenuView(getContext());
|
||||
mMenuView.setPopupTheme(mPopupTheme);
|
||||
mMenuView.setOnMenuItemClickListener(mMenuViewItemClickListener);
|
||||
mMenuView.setActionMenuPresenterCallback(mActionMenuPresenterCallback);
|
||||
mMenuView.setMenuCallbacks(mActionMenuPresenterCallback, mMenuBuilderCallback);
|
||||
final LayoutParams lp = generateDefaultLayoutParams();
|
||||
lp.gravity = Gravity.END | (mButtonGravity & Gravity.VERTICAL_GRAVITY_MASK);
|
||||
mMenuView.setLayoutParams(lp);
|
||||
@@ -1684,8 +1685,9 @@ public class Toolbar extends ViewGroup {
|
||||
* Must be called before the menu is accessed
|
||||
* @hide
|
||||
*/
|
||||
public void setActionMenuPresenterCallback(MenuPresenter.Callback cb) {
|
||||
mActionMenuPresenterCallback = cb;
|
||||
public void setMenuCallbacks(MenuPresenter.Callback pcb, MenuBuilder.Callback mcb) {
|
||||
mActionMenuPresenterCallback = pcb;
|
||||
mMenuBuilderCallback = mcb;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -456,7 +456,7 @@ public class ToolbarActionBar extends ActionBar {
|
||||
|
||||
void populateOptionsMenu() {
|
||||
if (!mMenuCallbackSet) {
|
||||
mToolbar.setActionMenuPresenterCallback(new ActionMenuPresenterCallback());
|
||||
mToolbar.setMenuCallbacks(new ActionMenuPresenterCallback(), new MenuBuilderCallback());
|
||||
mMenuCallbackSet = true;
|
||||
}
|
||||
final Menu menu = mToolbar.getMenu();
|
||||
@@ -547,4 +547,24 @@ public class ToolbarActionBar extends ActionBar {
|
||||
mClosingActionMenu = false;
|
||||
}
|
||||
}
|
||||
|
||||
private final class MenuBuilderCallback implements MenuBuilder.Callback {
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMenuModeChange(MenuBuilder menu) {
|
||||
if (mWindowCallback != null) {
|
||||
if (mToolbar.isOverflowMenuShowing()) {
|
||||
mWindowCallback.onPanelClosed(Window.FEATURE_ACTION_BAR, menu);
|
||||
} else if (mWindowCallback.onPreparePanel(Window.FEATURE_OPTIONS_PANEL,
|
||||
null, menu)) {
|
||||
mWindowCallback.onMenuOpened(Window.FEATURE_ACTION_BAR, menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user