diff options
| -rw-r--r-- | api/current.txt | 27 | ||||
| -rw-r--r-- | core/java/android/widget/Spinner.java | 3 | ||||
| -rw-r--r-- | core/java/com/android/internal/view/menu/ActionMenuView.java | 46 | ||||
| -rw-r--r-- | core/res/res/values/public.xml | 1 | ||||
| -rw-r--r-- | core/res/res/values/styles.xml | 12 | ||||
| -rw-r--r-- | core/res/res/values/themes.xml | 3 |
6 files changed, 51 insertions, 41 deletions
diff --git a/api/current.txt b/api/current.txt index 2ac486b1a095..9b418bcf6241 100644 --- a/api/current.txt +++ b/api/current.txt @@ -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 diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java index b23a855f4d65..485c67861f37 100644 --- a/core/java/android/widget/Spinner.java +++ b/core/java/android/widget/Spinner.java @@ -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; } diff --git a/core/java/com/android/internal/view/menu/ActionMenuView.java b/core/java/com/android/internal/view/menu/ActionMenuView.java index cfe9e5990e02..bf2965b0b469 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuView.java @@ -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) { diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 75acb37b4ded..73aa9890d9b3 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -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" /> diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index 9ee4b6ade4a1..11016f4a5dee 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -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"> diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index 23111e6501d4..9a52cffdb927 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -283,7 +283,7 @@ <item name="actionBarSplitStyle">?android:attr/actionBarStyle</item> <item name="actionBarSize">@dimen/action_bar_default_height</item> <item name="actionModePopupWindowStyle">?android:attr/popupWindowStyle</item> - <item name="actionMenuTextAppearance">?android:attr/textAppearanceSmall</item> + <item name="actionMenuTextAppearance">@android:style/TextAppearance.Holo.Widget.ActionBar.Menu</item> <item name="actionMenuTextColor">?android:attr/textColorPrimary</item> <item name="dividerVertical">@drawable/divider_vertical_dark</item> @@ -1389,6 +1389,7 @@ <item name="actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item> <item name="actionModeBackground">@android:drawable/cab_background_holo_dark</item> <item name="actionModeCloseDrawable">@android:drawable/cab_ic_close_holo</item> + <item name="homeAsUpIndicator">@android:drawable/ic_ab_back_holo_dark</item> <item name="actionBarTabStyle">@style/Widget.Holo.Light.ActionBar.TabView.Inverse</item> <item name="actionBarTabBarStyle">@style/Widget.Holo.Light.ActionBar.TabBar.Inverse</item> <item name="actionBarTabTextStyle">@style/Widget.Holo.Light.ActionBar.TabText.Inverse</item> |