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

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

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
parent cbcb24cd
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -1158,6 +1158,7 @@ please see styles_device_defaults.xml.
        <item name="android:minWidth">@android:dimen/action_button_min_width</item>
        <item name="android:minHeight">?android:attr/actionBarSize</item>
        <item name="android:gravity">center</item>
        <item name="android:maxLines">2</item>
    </style>

    <style name="Widget.ActionButton.Overflow">
@@ -1861,6 +1862,7 @@ please see styles_device_defaults.xml.
        <item name="android:paddingLeft">12dip</item>
        <item name="android:paddingRight">12dip</item>
        <item name="android:scaleType">center</item>
        <item name="android:maxLines">2</item>
    </style>

    <style name="Widget.Holo.ActionButton.Overflow">