Merge "Fix bug 5534667 - Action bar icons need more space on tablet" into ics-mr1
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.internal.view.menu;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -46,8 +47,8 @@ public class ActionMenuItemView extends LinearLayout
|
|||||||
private ImageButton mImageButton;
|
private ImageButton mImageButton;
|
||||||
private Button mTextButton;
|
private Button mTextButton;
|
||||||
private boolean mAllowTextWithIcon;
|
private boolean mAllowTextWithIcon;
|
||||||
private boolean mShowTextAllCaps;
|
|
||||||
private boolean mExpandedFormat;
|
private boolean mExpandedFormat;
|
||||||
|
private int mMinWidth;
|
||||||
|
|
||||||
public ActionMenuItemView(Context context) {
|
public ActionMenuItemView(Context context) {
|
||||||
this(context, null);
|
this(context, null);
|
||||||
@@ -62,7 +63,11 @@ public class ActionMenuItemView extends LinearLayout
|
|||||||
final Resources res = context.getResources();
|
final Resources res = context.getResources();
|
||||||
mAllowTextWithIcon = res.getBoolean(
|
mAllowTextWithIcon = res.getBoolean(
|
||||||
com.android.internal.R.bool.config_allowActionMenuItemTextWithIcon);
|
com.android.internal.R.bool.config_allowActionMenuItemTextWithIcon);
|
||||||
mShowTextAllCaps = res.getBoolean(com.android.internal.R.bool.config_actionMenuItemAllCaps);
|
TypedArray a = context.obtainStyledAttributes(attrs,
|
||||||
|
com.android.internal.R.styleable.ActionMenuItemView, 0, 0);
|
||||||
|
mMinWidth = a.getDimensionPixelSize(
|
||||||
|
com.android.internal.R.styleable.ActionMenuItemView_minWidth, 0);
|
||||||
|
a.recycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -228,4 +233,21 @@ public class ActionMenuItemView extends LinearLayout
|
|||||||
cheatSheet.show();
|
cheatSheet.show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
|
||||||
|
final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
|
||||||
|
final int specSize = MeasureSpec.getSize(widthMeasureSpec);
|
||||||
|
final int oldMeasuredWidth = getMeasuredWidth();
|
||||||
|
final int targetWidth = widthMode == MeasureSpec.AT_MOST ? Math.min(specSize, mMinWidth)
|
||||||
|
: mMinWidth;
|
||||||
|
|
||||||
|
if (widthMode != MeasureSpec.EXACTLY && mMinWidth > 0 && oldMeasuredWidth < targetWidth) {
|
||||||
|
// Remeasure at exactly the minimum width.
|
||||||
|
super.onMeasure(MeasureSpec.makeMeasureSpec(targetWidth, MeasureSpec.EXACTLY),
|
||||||
|
heightMeasureSpec);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,14 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
|
|||||||
MenuItemImpl item = visibleItems.get(i);
|
MenuItemImpl item = visibleItems.get(i);
|
||||||
if (shouldIncludeItem(childIndex, item)) {
|
if (shouldIncludeItem(childIndex, item)) {
|
||||||
final View convertView = parent.getChildAt(childIndex);
|
final View convertView = parent.getChildAt(childIndex);
|
||||||
|
final MenuItemImpl oldItem = convertView instanceof MenuView.ItemView ?
|
||||||
|
((MenuView.ItemView) convertView).getItemData() : null;
|
||||||
final View itemView = getItemView(item, convertView, parent);
|
final View itemView = getItemView(item, convertView, parent);
|
||||||
|
if (item != oldItem) {
|
||||||
|
// Don't let old states linger with new data.
|
||||||
|
itemView.setPressed(false);
|
||||||
|
itemView.jumpDrawablesToCurrentState();
|
||||||
|
}
|
||||||
if (itemView != convertView) {
|
if (itemView != convertView) {
|
||||||
addItemView(itemView, childIndex);
|
addItemView(itemView, childIndex);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -518,6 +518,7 @@ public class ActionBarView extends AbsActionBarView {
|
|||||||
|
|
||||||
public void setHomeButtonEnabled(boolean enable) {
|
public void setHomeButtonEnabled(boolean enable) {
|
||||||
mHomeLayout.setEnabled(enable);
|
mHomeLayout.setEnabled(enable);
|
||||||
|
mHomeLayout.setFocusable(enable);
|
||||||
// Make sure the home button has an accurate content description for accessibility.
|
// Make sure the home button has an accurate content description for accessibility.
|
||||||
if (!enable) {
|
if (!enable) {
|
||||||
mHomeLayout.setContentDescription(null);
|
mHomeLayout.setContentDescription(null);
|
||||||
|
|||||||
@@ -54,5 +54,7 @@
|
|||||||
<!-- Compensate for double margin : preference_screen_side_margin + 4 (frame background shadow) = -preference_screen_side_margin_negative -->
|
<!-- Compensate for double margin : preference_screen_side_margin + 4 (frame background shadow) = -preference_screen_side_margin_negative -->
|
||||||
<dimen name="preference_screen_side_margin_negative">-4dp</dimen>
|
<dimen name="preference_screen_side_margin_negative">-4dp</dimen>
|
||||||
|
|
||||||
|
<!-- Minimum width for an action button in the menu area of an action bar -->
|
||||||
|
<dimen name="action_button_min_width">64dip</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
|
|||||||
@@ -2394,6 +2394,10 @@
|
|||||||
<attr name="description" />
|
<attr name="description" />
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
|
<declare-styleable name="ActionMenuItemView">
|
||||||
|
<attr name="minWidth" />
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
<!-- =============================== -->
|
<!-- =============================== -->
|
||||||
<!-- Widget package class attributes -->
|
<!-- Widget package class attributes -->
|
||||||
<!-- =============================== -->
|
<!-- =============================== -->
|
||||||
|
|||||||
@@ -189,4 +189,7 @@
|
|||||||
<dimen name="default_app_widget_padding_top">8dp</dimen>
|
<dimen name="default_app_widget_padding_top">8dp</dimen>
|
||||||
<dimen name="default_app_widget_padding_right">8dp</dimen>
|
<dimen name="default_app_widget_padding_right">8dp</dimen>
|
||||||
<dimen name="default_app_widget_padding_bottom">8dp</dimen>
|
<dimen name="default_app_widget_padding_bottom">8dp</dimen>
|
||||||
|
|
||||||
|
<!-- Minimum width for an action button in the menu area of an action bar -->
|
||||||
|
<dimen name="action_button_min_width">56dip</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1161,8 +1161,9 @@ please see styles_device_defaults.xml.
|
|||||||
<item name="android:background">?android:attr/actionBarItemBackground</item>
|
<item name="android:background">?android:attr/actionBarItemBackground</item>
|
||||||
<item name="android:paddingLeft">12dip</item>
|
<item name="android:paddingLeft">12dip</item>
|
||||||
<item name="android:paddingRight">12dip</item>
|
<item name="android:paddingRight">12dip</item>
|
||||||
<item name="android:minWidth">56dip</item>
|
<item name="android:minWidth">@android:dimen/action_button_min_width</item>
|
||||||
<item name="android:minHeight">?android:attr/actionBarSize</item>
|
<item name="android:minHeight">?android:attr/actionBarSize</item>
|
||||||
|
<item name="android:gravity">center</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Widget.ActionButton.Overflow">
|
<style name="Widget.ActionButton.Overflow">
|
||||||
@@ -1359,7 +1360,7 @@ please see styles_device_defaults.xml.
|
|||||||
<item name="android:textSize">12sp</item>
|
<item name="android:textSize">12sp</item>
|
||||||
<item name="android:textStyle">bold</item>
|
<item name="android:textStyle">bold</item>
|
||||||
<item name="android:textColor">?android:attr/actionMenuTextColor</item>
|
<item name="android:textColor">?android:attr/actionMenuTextColor</item>
|
||||||
<item name="android:textAllCaps">true</item>
|
<item name="android:textAllCaps">@android:bool/config_actionMenuItemAllCaps</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="TextAppearance.Holo.Widget.ActionMode">
|
<style name="TextAppearance.Holo.Widget.ActionMode">
|
||||||
@@ -1883,7 +1884,7 @@ please see styles_device_defaults.xml.
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Widget.Holo.ActionButton" parent="Widget.ActionButton">
|
<style name="Widget.Holo.ActionButton" parent="Widget.ActionButton">
|
||||||
<item name="android:minWidth">56dip</item>
|
<item name="android:minWidth">@android:dimen/action_button_min_width</item>
|
||||||
<item name="android:gravity">center</item>
|
<item name="android:gravity">center</item>
|
||||||
<item name="android:paddingLeft">12dip</item>
|
<item name="android:paddingLeft">12dip</item>
|
||||||
<item name="android:paddingRight">12dip</item>
|
<item name="android:paddingRight">12dip</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user