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

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

Fix some action bar menu layout bugs around config changes

Bug 5712010

Fix cases where the transition between split/standard action bar menu
presentation wasn't happening properly for windows in activities that
handle their own config/orientation changes.

Change-Id: I7168555e09c9ed448afb8619fd6f0e1466695365
parent 75d022af
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -116,11 +116,11 @@ public class ActionMenuPresenter extends BaseMenuPresenter
        if (!mMaxItemsSet) {
            mMaxItems = mContext.getResources().getInteger(
                    com.android.internal.R.integer.max_action_buttons);
        }
        if (mMenu != null) {
            mMenu.onItemsChanged(true);
        }
    }
    }

    public void setWidthLimit(int width, boolean strict) {
        mWidthLimit = width;
+18 −0
Original line number Diff line number Diff line
@@ -324,13 +324,31 @@ public class ActionBarView extends AbsActionBarView {
                    if (mSplitView != null) {
                        mSplitView.addView(mMenuView);
                    }
                    mMenuView.getLayoutParams().width = LayoutParams.MATCH_PARENT;
                } else {
                    addView(mMenuView);
                    mMenuView.getLayoutParams().width = LayoutParams.WRAP_CONTENT;
                }
                mMenuView.requestLayout();
            }
            if (mSplitView != null) {
                mSplitView.setVisibility(splitActionBar ? VISIBLE : GONE);
            }

            if (mActionMenuPresenter != null) {
                if (!splitActionBar) {
                    mActionMenuPresenter.setExpandedActionViewsExclusive(
                            getResources().getBoolean(
                                    com.android.internal.R.bool.action_bar_expanded_action_views_exclusive));
                } else {
                    mActionMenuPresenter.setExpandedActionViewsExclusive(false);
                    // 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);
                }
            }
            super.setSplitActionBar(splitActionBar);
        }
    }