summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt27
-rw-r--r--core/java/android/widget/Spinner.java3
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuView.java46
-rw-r--r--core/res/res/values/public.xml1
-rw-r--r--core/res/res/values/styles.xml12
-rw-r--r--core/res/res/values/themes.xml3
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>