diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 80f68ac57765c..06f753f3f28ed 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -48,6 +48,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter {
private boolean mMaxItemsSet;
private boolean mStrictWidthLimit;
private boolean mWidthLimitSet;
+ private boolean mExpandedActionViewsExclusive;
private int mMinCellSize;
@@ -124,6 +125,10 @@ public class ActionMenuPresenter extends BaseMenuPresenter {
mMaxItemsSet = true;
}
+ public void setExpandedActionViewsExclusive(boolean isExclusive) {
+ mExpandedActionViewsExclusive = isExclusive;
+ }
+
@Override
public MenuView getMenuView(ViewGroup root) {
MenuView result = super.getMenuView(root);
@@ -326,6 +331,11 @@ public class ActionMenuPresenter extends BaseMenuPresenter {
} else {
hasOverflow = true;
}
+ if (mExpandedActionViewsExclusive && item.isActionViewExpanded()) {
+ // Overflow everything if we have an expanded action view and we're
+ // space constrained.
+ maxActions = 0;
+ }
}
// Reserve a spot for the overflow item if needed.
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index 678751cda0605..e03858b4af13c 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -345,11 +345,15 @@ public class ActionBarView extends AbsActionBarView {
final LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT);
if (!mSplitActionBar) {
+ mActionMenuPresenter.setExpandedActionViewsExclusive(
+ getResources().getBoolean(
+ com.android.internal.R.bool.action_bar_expanded_action_views_exclusive));
builder.addMenuPresenter(mActionMenuPresenter);
builder.addMenuPresenter(mExpandedMenuPresenter);
menuView = (ActionMenuView) mActionMenuPresenter.getMenuView(this);
addView(menuView, layoutParams);
} else {
+ mActionMenuPresenter.setExpandedActionViewsExclusive(false);
// Allow full screen width in split mode.
mActionMenuPresenter.setWidthLimit(
getContext().getResources().getDisplayMetrics().widthPixels, true);
diff --git a/core/res/res/values-sw600dp/bools.xml b/core/res/res/values-sw600dp/bools.xml
index d73ff9977caa9..a453ac13576d4 100644
--- a/core/res/res/values-sw600dp/bools.xml
+++ b/core/res/res/values-sw600dp/bools.xml
@@ -17,4 +17,5 @@
true
false
+ false
diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml
index e51fc66302778..6e4db5e93dfd9 100644
--- a/core/res/res/values/bools.xml
+++ b/core/res/res/values/bools.xml
@@ -19,4 +19,5 @@
true
false
true
+ true