summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-04-09 15:54:01 -0700
committerAdam Powell <adamp@google.com>2012-04-09 16:37:52 -0700
commita7dec6d9734bdc3a9e39ffd357002e25c6fdc99b (patch)
treea065d566ff776580b546fee06b7dbc5bf1f1718e /core/java/com
parentcbcb24cdb812c6f49a17c2c611c4138a7a0a964e (diff)
downloadframeworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.zip
frameworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.tar.gz
frameworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.tar.bz2
Restrictions for action buttons with text
Restrict action buttons with text to 2 lines max. Action buttons with text will always consume at least 2 cells in split mode because they look silly in 1. Note that this affects text provided by menu items, not TextViews embedded within app-provided action views. Fixes bug 6236467 Change-Id: I7bcbf80f448b13a895ddc3bc6a7a555c0f0bac7c
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuView.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuView.java b/core/java/com/android/internal/view/menu/ActionMenuView.java
index e00fe9f..af67d55 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuView.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuView.java
@@ -340,8 +340,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
final int childHeightMode = MeasureSpec.getMode(parentHeightMeasureSpec);
final int childHeightSpec = MeasureSpec.makeMeasureSpec(childHeightSize, childHeightMode);
+ final ActionMenuItemView itemView = child instanceof ActionMenuItemView ?
+ (ActionMenuItemView) child : null;
+ final boolean hasText = itemView != null && itemView.hasText();
+
int cellsUsed = 0;
- if (cellsRemaining > 0) {
+ if (cellsRemaining > 0 && (!hasText || cellsRemaining >= 2)) {
final int childWidthSpec = MeasureSpec.makeMeasureSpec(
cellSize * cellsRemaining, MeasureSpec.AT_MOST);
child.measure(childWidthSpec, childHeightSpec);
@@ -349,11 +353,10 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
final int measuredWidth = child.getMeasuredWidth();
cellsUsed = measuredWidth / cellSize;
if (measuredWidth % cellSize != 0) cellsUsed++;
+ if (hasText && cellsUsed < 2) cellsUsed = 2;
}
- final ActionMenuItemView itemView = child instanceof ActionMenuItemView ?
- (ActionMenuItemView) child : null;
- final boolean expandable = !lp.isOverflowButton && itemView != null && itemView.hasText();
+ final boolean expandable = !lp.isOverflowButton && hasText;
lp.expandable = expandable;
lp.cellsUsed = cellsUsed;