Search in sources :

Example 51 with MenuBuilder

use of com.android.internal.view.menu.MenuBuilder in project android_frameworks_base by ResurrectionRemix.

the class ToolbarActionBar method populateOptionsMenu.

void populateOptionsMenu() {
    if (!mMenuCallbackSet) {
        mDecorToolbar.setMenuCallbacks(new ActionMenuPresenterCallback(), new MenuBuilderCallback());
        mMenuCallbackSet = true;
    }
    final Menu menu = mDecorToolbar.getMenu();
    final MenuBuilder mb = menu instanceof MenuBuilder ? (MenuBuilder) menu : null;
    if (mb != null) {
        mb.stopDispatchingItemsChanged();
    }
    try {
        menu.clear();
        if (!mWindowCallback.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, menu) || !mWindowCallback.onPreparePanel(Window.FEATURE_OPTIONS_PANEL, null, menu)) {
            menu.clear();
        }
    } finally {
        if (mb != null) {
            mb.startDispatchingItemsChanged();
        }
    }
}
Also used : Menu(android.view.Menu) MenuBuilder(com.android.internal.view.menu.MenuBuilder)

Example 52 with MenuBuilder

use of com.android.internal.view.menu.MenuBuilder in project android_frameworks_base by ResurrectionRemix.

the class View method createContextMenu.

/**
     * Show the context menu for this view. It is not safe to hold on to the
     * menu after returning from this method.
     *
     * You should normally not overload this method. Overload
     * {@link #onCreateContextMenu(ContextMenu)} or define an
     * {@link OnCreateContextMenuListener} to add items to the context menu.
     *
     * @param menu The context menu to populate
     */
public void createContextMenu(ContextMenu menu) {
    ContextMenuInfo menuInfo = getContextMenuInfo();
    // Sets the current menu info so all items added to menu will have
    // my extra info set.
    ((MenuBuilder) menu).setCurrentMenuInfo(menuInfo);
    onCreateContextMenu(menu);
    ListenerInfo li = mListenerInfo;
    if (li != null && li.mOnCreateContextMenuListener != null) {
        li.mOnCreateContextMenuListener.onCreateContextMenu(menu, this, menuInfo);
    }
    // Clear the extra information so subsequent items that aren't mine don't
    // have my extra info.
    ((MenuBuilder) menu).setCurrentMenuInfo(null);
    if (mParent != null) {
        mParent.createContextMenu(menu);
    }
}
Also used : ContextMenuInfo(android.view.ContextMenu.ContextMenuInfo) MenuBuilder(com.android.internal.view.menu.MenuBuilder)

Example 53 with MenuBuilder

use of com.android.internal.view.menu.MenuBuilder in project android_frameworks_base by ResurrectionRemix.

the class Toolbar method getCurrentContentInsetEnd.

/**
     * Gets the content inset that will be used on the ending side of the bar in the current
     * toolbar configuration.
     *
     * @return the current content inset end in pixels
     *
     * @see #getContentInsetEndWithActions()
     */
public int getCurrentContentInsetEnd() {
    boolean hasActions = false;
    if (mMenuView != null) {
        final MenuBuilder mb = mMenuView.peekMenu();
        hasActions = mb != null && mb.hasVisibleItems();
    }
    return hasActions ? Math.max(getContentInsetEnd(), Math.max(mContentInsetEndWithActions, 0)) : getContentInsetEnd();
}
Also used : SubMenuBuilder(com.android.internal.view.menu.SubMenuBuilder) MenuBuilder(com.android.internal.view.menu.MenuBuilder)

Example 54 with MenuBuilder

use of com.android.internal.view.menu.MenuBuilder in project android_frameworks_base by ResurrectionRemix.

the class Toolbar method ensureMenu.

private void ensureMenu() {
    ensureMenuView();
    if (mMenuView.peekMenu() == null) {
        // Initialize a new menu for the first time.
        final MenuBuilder menu = (MenuBuilder) mMenuView.getMenu();
        if (mExpandedMenuPresenter == null) {
            mExpandedMenuPresenter = new ExpandedActionViewMenuPresenter();
        }
        mMenuView.setExpandedActionViewsExclusive(true);
        menu.addMenuPresenter(mExpandedMenuPresenter, mPopupContext);
    }
}
Also used : SubMenuBuilder(com.android.internal.view.menu.SubMenuBuilder) MenuBuilder(com.android.internal.view.menu.MenuBuilder)

Example 55 with MenuBuilder

use of com.android.internal.view.menu.MenuBuilder in project android_frameworks_base by ResurrectionRemix.

the class ActionBarContextView method initForMode.

public void initForMode(final ActionMode mode) {
    if (mClose == null) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        mClose = inflater.inflate(mCloseItemLayout, this, false);
        addView(mClose);
    } else if (mClose.getParent() == null) {
        addView(mClose);
    }
    View closeButton = mClose.findViewById(R.id.action_mode_close_button);
    closeButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            mode.finish();
        }
    });
    final MenuBuilder menu = (MenuBuilder) mode.getMenu();
    if (mActionMenuPresenter != null) {
        mActionMenuPresenter.dismissPopupMenus();
    }
    mActionMenuPresenter = new ActionMenuPresenter(mContext);
    mActionMenuPresenter.setReserveOverflow(true);
    final LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
    if (!mSplitActionBar) {
        menu.addMenuPresenter(mActionMenuPresenter, mPopupContext);
        mMenuView = (ActionMenuView) mActionMenuPresenter.getMenuView(this);
        mMenuView.setBackground(null);
        addView(mMenuView, layoutParams);
    } else {
        // Allow full screen width in split mode.
        mActionMenuPresenter.setWidthLimit(getContext().getResources().getDisplayMetrics().widthPixels, true);
        // No limit to the item count; use whatever will fit.
        mActionMenuPresenter.setItemLimit(Integer.MAX_VALUE);
        // Span the whole width
        layoutParams.width = LayoutParams.MATCH_PARENT;
        layoutParams.height = mContentHeight;
        menu.addMenuPresenter(mActionMenuPresenter, mPopupContext);
        mMenuView = (ActionMenuView) mActionMenuPresenter.getMenuView(this);
        mMenuView.setBackgroundDrawable(mSplitBackground);
        mSplitView.addView(mMenuView, layoutParams);
    }
}
Also used : LayoutInflater(android.view.LayoutInflater) TextView(android.widget.TextView) ActionMenuView(android.widget.ActionMenuView) View(android.view.View) MenuBuilder(com.android.internal.view.menu.MenuBuilder) ActionMenuPresenter(android.widget.ActionMenuPresenter)

Aggregations

MenuBuilder (com.android.internal.view.menu.MenuBuilder)67 SubMenuBuilder (com.android.internal.view.menu.SubMenuBuilder)22 Context (android.content.Context)11 ActionMenuPresenter (android.widget.ActionMenuPresenter)10 ActionMenuView (android.widget.ActionMenuView)10 LayoutInflater (android.view.LayoutInflater)7 View (android.view.View)7 ViewGroup (android.view.ViewGroup)7 TextView (android.widget.TextView)7 TypedValue (android.util.TypedValue)6 ContextMenuInfo (android.view.ContextMenu.ContextMenuInfo)6 ContextThemeWrapper (android.view.ContextThemeWrapper)6 ContextMenuBuilder (com.android.internal.view.menu.ContextMenuBuilder)6 Theme (android.content.res.Resources.Theme)5 TypedArray (android.content.res.TypedArray)5 DisplayMetrics (android.util.DisplayMetrics)5 Menu (android.view.Menu)5 MenuInflater (android.view.MenuInflater)5 LayoutParams (android.view.ViewGroup.LayoutParams)5 ListView (android.widget.ListView)5