summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Powell <adamp@google.com> 2011-07-20 14:17:56 -0700
committer Adam Powell <adamp@google.com> 2011-07-20 14:27:06 -0700
commitb187cd9c54f0100c0fb47c354cdecad29ca7c0ae (patch)
tree82b74e7574a9b1cc76a8e4ae0dd9e6f3b0cc9bcb
parenteac3503deb95bee21f811cc14ad26fa5aeca98f0 (diff)
Fix bug 5038368 - Rules for collapsing action views.
Make collapsing action views exclusive on small screens with unsplit action bars. Change-Id: I11cc220acc7b6acddd25f2500404b47bfb405d5c
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuPresenter.java10
-rw-r--r--core/java/com/android/internal/widget/ActionBarView.java4
-rw-r--r--core/res/res/values-sw600dp/bools.xml1
-rw-r--r--core/res/res/values/bools.xml1
4 files changed, 16 insertions, 0 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 80f68ac57765..06f753f3f28e 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 678751cda060..e03858b4af13 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 d73ff9977caa..a453ac13576d 100644
--- a/core/res/res/values-sw600dp/bools.xml
+++ b/core/res/res/values-sw600dp/bools.xml
@@ -17,4 +17,5 @@
<resources>
<bool name="preferences_prefer_dual_pane">true</bool>
<bool name="show_ongoing_ime_switcher">false</bool>
+ <bool name="action_bar_expanded_action_views_exclusive">false</bool>
</resources>
diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml
index e51fc6630277..6e4db5e93dfd 100644
--- a/core/res/res/values/bools.xml
+++ b/core/res/res/values/bools.xml
@@ -19,4 +19,5 @@
<bool name="split_action_bar_is_narrow">true</bool>
<bool name="preferences_prefer_dual_pane">false</bool>
<bool name="show_ongoing_ime_switcher">true</bool>
+ <bool name="action_bar_expanded_action_views_exclusive">true</bool>
</resources>