Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d16c9884 authored by Adam Powell's avatar Adam Powell
Browse files

Fix bug 3330223 - onCreateOptionsMenu() unable to getActionView()

immediately after orientation change

Inflate action view layout resource earlier so that calls to
getActionView are valid immediately after menu inflation.

Change-Id: I8023328b1a77670ac42a783f6e4b46aa5c2a798e
parent 81f573de
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -187,17 +187,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
            final MenuItemImpl itemData = itemsToShow.get(i);
            View actionView = itemData.getActionView();

            if (actionView == null) {
                // Check for a layout ID instead
                final int layoutId = itemData.getActionViewId();
                if (layoutId != 0) {
                    LayoutInflater inflater = LayoutInflater.from(getContext());
                    actionView = inflater.inflate(layoutId, this, false);
                    itemData.setActionView(0);
                    itemData.setActionView(actionView);
                }
            }

            if (actionView != null) {
                final ViewParent parent = actionView.getParent();
                if (parent instanceof ViewGroup) {
+3 −6
Original line number Diff line number Diff line
@@ -83,7 +83,6 @@ public final class MenuItemImpl implements MenuItem {
    private int mShowAsAction = SHOW_AS_ACTION_NEVER;

    private View mActionView;
    private int mActionViewId;

    /** Used for the icon resource ID if this item does not have an icon */
    static final int NO_ICON = 0;
@@ -696,15 +695,13 @@ public final class MenuItemImpl implements MenuItem {
    }

    public MenuItem setActionView(int resId) {
        mActionViewId = resId;
        LayoutInflater inflater = LayoutInflater.from(mMenu.getContext());
        ViewGroup parent = (ViewGroup) mMenu.getMenuView(MenuBuilder.TYPE_ACTION_BUTTON, null);
        setActionView(inflater.inflate(resId, parent, false));
        return this;
    }

    public View getActionView() {
        return mActionView;
    }

    public int getActionViewId() {
        return mActionViewId;
    }
}