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

Commit eea5be54 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Action bar layout tweaks"

parents cb925e7a 160bb7fa
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -1512,6 +1512,7 @@ package android {
    field public static final int TextAppearance_Holo_Small = 16974081; // 0x1030101
    field public static final int TextAppearance_Holo_Small_Inverse = 16974082; // 0x1030102
    field public static final int TextAppearance_Holo_Widget = 16974085; // 0x1030105
    field public static final int TextAppearance_Holo_Widget_ActionBar_Menu = 16974113; // 0x1030121
    field public static final int TextAppearance_Holo_Widget_ActionBar_Subtitle = 16974099; // 0x1030113
    field public static final int TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse = 16974110; // 0x103011e
    field public static final int TextAppearance_Holo_Widget_ActionBar_Title = 16974098; // 0x1030112
@@ -1582,16 +1583,16 @@ package android {
    field public static final int Theme_Holo_Light_NoActionBar = 16974064; // 0x10300f0
    field public static final int Theme_Holo_Light_NoActionBar_Fullscreen = 16974065; // 0x10300f1
    field public static final int Theme_Holo_Light_Panel = 16973948; // 0x103007c
    field public static final int Theme_Holo_Light_SolidActionBar = 16974121; // 0x1030129
    field public static final int Theme_Holo_Light_SolidActionBar_Inverse = 16974122; // 0x103012a
    field public static final int Theme_Holo_Light_SolidActionBar_Inverse_SplitActionBarWhenNarrow = 16974125; // 0x103012d
    field public static final int Theme_Holo_Light_SolidActionBar_SplitActionBarWhenNarrow = 16974124; // 0x103012c
    field public static final int Theme_Holo_Light_SolidActionBar = 16974122; // 0x103012a
    field public static final int Theme_Holo_Light_SolidActionBar_Inverse = 16974123; // 0x103012b
    field public static final int Theme_Holo_Light_SolidActionBar_Inverse_SplitActionBarWhenNarrow = 16974126; // 0x103012e
    field public static final int Theme_Holo_Light_SolidActionBar_SplitActionBarWhenNarrow = 16974125; // 0x103012d
    field public static final int Theme_Holo_Light_SplitActionBarWhenNarrow = 16974106; // 0x103011a
    field public static final int Theme_Holo_NoActionBar = 16973932; // 0x103006c
    field public static final int Theme_Holo_NoActionBar_Fullscreen = 16973933; // 0x103006d
    field public static final int Theme_Holo_Panel = 16973947; // 0x103007b
    field public static final int Theme_Holo_SolidActionBar = 16974120; // 0x1030128
    field public static final int Theme_Holo_SolidActionBar_SplitActionBarWhenNarrow = 16974123; // 0x103012b
    field public static final int Theme_Holo_SolidActionBar = 16974121; // 0x1030129
    field public static final int Theme_Holo_SolidActionBar_SplitActionBarWhenNarrow = 16974124; // 0x103012c
    field public static final int Theme_Holo_SplitActionBarWhenNarrow = 16974105; // 0x1030119
    field public static final int Theme_Holo_Wallpaper = 16973949; // 0x103007d
    field public static final int Theme_Holo_Wallpaper_NoTitleBar = 16973950; // 0x103007e
@@ -1643,7 +1644,7 @@ package android {
    field public static final int Widget_GridView = 16973874; // 0x1030032
    field public static final int Widget_Holo = 16973962; // 0x103008a
    field public static final int Widget_Holo_ActionBar = 16974004; // 0x10300b4
    field public static final int Widget_Holo_ActionBar_Solid = 16974113; // 0x1030121
    field public static final int Widget_Holo_ActionBar_Solid = 16974114; // 0x1030122
    field public static final int Widget_Holo_ActionBar_TabBar = 16974071; // 0x10300f7
    field public static final int Widget_Holo_ActionBar_TabText = 16974070; // 0x10300f6
    field public static final int Widget_Holo_ActionBar_TabView = 16974069; // 0x10300f5
@@ -1673,19 +1674,19 @@ package android {
    field public static final int Widget_Holo_ImageButton = 16973974; // 0x1030096
    field public static final int Widget_Holo_Light = 16974005; // 0x10300b5
    field public static final int Widget_Holo_Light_ActionBar = 16974049; // 0x10300e1
    field public static final int Widget_Holo_Light_ActionBar_Solid = 16974114; // 0x1030122
    field public static final int Widget_Holo_Light_ActionBar_Solid_Inverse = 16974115; // 0x1030123
    field public static final int Widget_Holo_Light_ActionBar_Solid = 16974115; // 0x1030123
    field public static final int Widget_Holo_Light_ActionBar_Solid_Inverse = 16974116; // 0x1030124
    field public static final int Widget_Holo_Light_ActionBar_TabBar = 16974074; // 0x10300fa
    field public static final int Widget_Holo_Light_ActionBar_TabBar_Inverse = 16974116; // 0x1030124
    field public static final int Widget_Holo_Light_ActionBar_TabBar_Inverse = 16974117; // 0x1030125
    field public static final int Widget_Holo_Light_ActionBar_TabText = 16974073; // 0x10300f9
    field public static final int Widget_Holo_Light_ActionBar_TabText_Inverse = 16974118; // 0x1030126
    field public static final int Widget_Holo_Light_ActionBar_TabText_Inverse = 16974119; // 0x1030127
    field public static final int Widget_Holo_Light_ActionBar_TabView = 16974072; // 0x10300f8
    field public static final int Widget_Holo_Light_ActionBar_TabView_Inverse = 16974117; // 0x1030125
    field public static final int Widget_Holo_Light_ActionBar_TabView_Inverse = 16974118; // 0x1030126
    field public static final int Widget_Holo_Light_ActionButton = 16974045; // 0x10300dd
    field public static final int Widget_Holo_Light_ActionButton_CloseMode = 16974048; // 0x10300e0
    field public static final int Widget_Holo_Light_ActionButton_Overflow = 16974046; // 0x10300de
    field public static final int Widget_Holo_Light_ActionMode = 16974047; // 0x10300df
    field public static final int Widget_Holo_Light_ActionMode_Inverse = 16974119; // 0x1030127
    field public static final int Widget_Holo_Light_ActionMode_Inverse = 16974120; // 0x1030128
    field public static final int Widget_Holo_Light_AutoCompleteTextView = 16974011; // 0x10300bb
    field public static final int Widget_Holo_Light_Button = 16974006; // 0x10300b6
    field public static final int Widget_Holo_Light_Button_Borderless_Small = 16974108; // 0x103011c
+2 −1
Original line number Diff line number Diff line
@@ -231,7 +231,8 @@ public class Spinner extends AbsSpinner implements OnClickListener {
        }

        if (child != null) {
            return child.getTop() + child.getBaseline();
            final int childBaseline = child.getBaseline();
            return childBaseline >= 0 ? child.getTop() + childBaseline : -1;
        } else {
            return -1;
        }
+23 −23
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        int cellsRemaining = cellCount;
        int maxChildHeight = 0;
        int maxCellsUsed = 0;
        int multiCellItemCount = 0;
        int expandableItemCount = 0;

        if (mReserveOverflow) cellsRemaining--;

@@ -123,7 +123,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
            lp.expanded = false;
            lp.extraPixels = 0;
            lp.cellsUsed = 0;
            lp.multiCell = false;
            lp.expandable = false;

            // Overflow always gets 1 cell. No more, no less.
            final int cellsAvailable = lp.isOverflowButton ? 1 : cellsRemaining;
@@ -132,7 +132,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
                    heightMeasureSpec, heightPadding);

            maxCellsUsed = Math.max(maxCellsUsed, cellsUsed);
            if (lp.multiCell) multiCellItemCount++;
            if (lp.expandable) expandableItemCount++;

            cellsRemaining -= cellsUsed;
            maxChildHeight = Math.max(maxChildHeight, child.getMeasuredHeight());
@@ -142,8 +142,8 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        // Try distributing whole leftover cells to smaller items first.

        boolean needsExpansion = false;
        long smallestMultiCellItemsAt = 0;
        while (multiCellItemCount > 0 && cellsRemaining > 0) {
        long smallestExpandableItemsAt = 0;
        while (expandableItemCount > 0 && cellsRemaining > 0) {
            int minCells = Integer.MAX_VALUE;
            long minCellsAt = 0; // Bit locations are indices of relevant child views
            int minCellsItemCount = 0;
@@ -152,7 +152,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();

                // Don't try to expand items that shouldn't.
                if (!lp.multiCell) continue;
                if (!lp.expandable) continue;

                // Mark indices of children that can receive an extra cell.
                if (lp.cellsUsed < minCells) {
@@ -165,10 +165,10 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
                }
            }

            if (minCellsItemCount < cellsRemaining) break; // Couldn't expand anything evenly. Stop.
            if (minCellsItemCount > cellsRemaining) break; // Couldn't expand anything evenly. Stop.

            // Items that get expanded will always be in the set of smallest items when we're done.
            smallestMultiCellItemsAt |= minCellsAt;
            smallestExpandableItemsAt |= minCellsAt;

            for (int i = 0; i < childCount; i++) {
                if ((minCellsAt & (1 << i)) == 0) continue;
@@ -186,12 +186,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        // Divide any space left that wouldn't divide along cell boundaries
        // evenly among the smallest multi-cell (expandable) items.

        if (cellsRemaining > 0 && smallestMultiCellItemsAt != 0) {
            final int expandCount = Long.bitCount(smallestMultiCellItemsAt);
        if (cellsRemaining > 0 && smallestExpandableItemsAt != 0) {
            final int expandCount = Long.bitCount(smallestExpandableItemsAt);
            final int extraPixels = cellsRemaining * cellSize / expandCount;

            for (int i = 0; i < childCount; i++) {
                if ((smallestMultiCellItemsAt & (1 << i)) == 0) continue;
                if ((smallestExpandableItemsAt & (1 << i)) == 0) continue;

                final View child = getChildAt(i);
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
@@ -229,7 +229,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
     * Measure a child view to fit within cell-based formatting. The child's width
     * will be measured to a whole multiple of cellSize.
     *
     * <p>Sets the multiCell and cellsUsed fields of LayoutParams.
     * <p>Sets the expandable and cellsUsed fields of LayoutParams.
     *
     * @param child Child to measure
     * @param cellSize Size of one cell
@@ -241,21 +241,14 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
    static int measureChildForCells(View child, int cellSize, int cellsRemaining,
            int parentHeightMeasureSpec, int parentHeightPadding) {
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
        final ActionMenuItemView itemView = child instanceof ActionMenuItemView ?
                (ActionMenuItemView) child : null;

        final int childHeightSize = MeasureSpec.getSize(parentHeightMeasureSpec) -
                parentHeightPadding;
        final int childHeightMode = MeasureSpec.getMode(parentHeightMeasureSpec);
        final int childHeightSpec = MeasureSpec.makeMeasureSpec(childHeightSize, childHeightMode);

        int cellsUsed = cellsRemaining > 0 ? 1 : 0;
        final boolean multiCell = !lp.isOverflowButton &&
                (itemView == null || itemView.hasText());

        lp.multiCell = multiCell;

        if (multiCell && cellsRemaining > 0) {
        int cellsUsed = 0;
        if (cellsRemaining > 0) {
            final int childWidthSpec = MeasureSpec.makeMeasureSpec(
                    cellSize * cellsRemaining, MeasureSpec.AT_MOST);
            child.measure(childWidthSpec, childHeightSpec);
@@ -264,6 +257,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
            cellsUsed = measuredWidth / cellSize;
            if (measuredWidth % cellSize != 0) cellsUsed++;
        }

        final ActionMenuItemView itemView = child instanceof ActionMenuItemView ?
                (ActionMenuItemView) child : null;
        final boolean expandable = !lp.isOverflowButton && itemView != null && itemView.hasText();
        lp.expandable = expandable;

        lp.cellsUsed = cellsUsed;
        final int targetWidth = cellsUsed * cellSize;
        child.measure(MeasureSpec.makeMeasureSpec(targetWidth, MeasureSpec.EXACTLY),
@@ -426,9 +425,10 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
        @ViewDebug.ExportedProperty(category = "layout")
        public int cellsUsed;
        @ViewDebug.ExportedProperty(category = "layout")
        public boolean multiCell;
        @ViewDebug.ExportedProperty(category = "layout")
        public int extraPixels;
        @ViewDebug.ExportedProperty(category = "layout")
        public boolean expandable;

        public boolean expanded;

        public LayoutParams(Context c, AttributeSet attrs) {
+1 −0
Original line number Diff line number Diff line
@@ -1789,6 +1789,7 @@
  <public type="style" name="TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse" />
  <public type="style" name="TextAppearance.Holo.Widget.ActionMode.Title.Inverse" />
  <public type="style" name="TextAppearance.Holo.Widget.ActionMode.Subtitle.Inverse" />
  <public type="style" name="TextAppearance.Holo.Widget.ActionBar.Menu" />
  <public type="style" name="Widget.Holo.ActionBar.Solid" />
  <public type="style" name="Widget.Holo.Light.ActionBar.Solid" />
  <public type="style" name="Widget.Holo.Light.ActionBar.Solid.Inverse" />
+9 −3
Original line number Diff line number Diff line
@@ -1314,6 +1314,13 @@
        <item name="android:textSize">@android:dimen/action_bar_subtitle_text_size</item>
    </style>

    <style name="TextAppearance.Holo.Widget.ActionBar.Menu"
           parent="TextAppearance.Holo.Small">
        <item name="android:textSize">12sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">?android:attr/actionMenuTextColor</item>
    </style>

    <style name="TextAppearance.Holo.Widget.ActionMode">
    </style>

@@ -1848,7 +1855,8 @@
    <style name="Widget.Holo.ActionBar.TabText" parent="Widget.ActionBar.TabText">
        <item name="android:textAppearance">@style/TextAppearance.Holo.Medium</item>
        <item name="android:textColor">?android:attr/textColorPrimary</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textSize">12sp</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="Widget.Holo.ActionMode" parent="Widget.ActionMode">
@@ -2203,9 +2211,7 @@
    </style>

    <style name="Widget.Holo.Light.ActionBar.TabText.Inverse">
        <item name="android:textAppearance">@style/TextAppearance.Holo.Medium</item>
        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
        <item name="android:textSize">18sp</item>
    </style>

    <style name="Widget.Holo.Light.ActionMode" parent="Widget.Holo.ActionMode">
Loading