Merge "Fix some ActionBar menu issues around config changes" into jb-mr1-dev
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package com.android.internal.view.menu;
|
package com.android.internal.view.menu;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
@@ -79,6 +80,15 @@ public class ActionMenuItemView extends TextView
|
|||||||
mSavedPaddingLeft = -1;
|
mSavedPaddingLeft = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
|
super.onConfigurationChanged(newConfig);
|
||||||
|
|
||||||
|
mAllowTextWithIcon = getContext().getResources().getBoolean(
|
||||||
|
com.android.internal.R.bool.config_allowActionMenuItemTextWithIcon);
|
||||||
|
updateTextButtonVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPadding(int l, int t, int r, int b) {
|
public void setPadding(int l, int t, int r, int b) {
|
||||||
mSavedPaddingLeft = l;
|
mSavedPaddingLeft = l;
|
||||||
@@ -242,6 +252,11 @@ public class ActionMenuItemView extends TextView
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
|
if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
|
||||||
|
// Fill all available height.
|
||||||
|
heightMeasureSpec = MeasureSpec.makeMeasureSpec(
|
||||||
|
MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY);
|
||||||
|
}
|
||||||
final boolean textVisible = hasText();
|
final boolean textVisible = hasText();
|
||||||
if (textVisible && mSavedPaddingLeft >= 0) {
|
if (textVisible && mSavedPaddingLeft >= 0) {
|
||||||
super.setPadding(mSavedPaddingLeft, getPaddingTop(),
|
super.setPadding(mSavedPaddingLeft, getPaddingTop(),
|
||||||
|
|||||||
@@ -576,6 +576,16 @@ public class ActionMenuPresenter extends BaseMenuPresenter
|
|||||||
public boolean needsDividerAfter() {
|
public boolean needsDividerAfter() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
|
if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
|
||||||
|
// Fill available height
|
||||||
|
heightMeasureSpec = MeasureSpec.makeMeasureSpec(
|
||||||
|
MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY);
|
||||||
|
}
|
||||||
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class OverflowPopup extends MenuPopupHelper {
|
private class OverflowPopup extends MenuPopupHelper {
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.internal.view.menu;
|
package com.android.internal.view.menu;
|
||||||
|
|
||||||
|
import com.android.internal.R;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
@@ -26,8 +28,6 @@ import android.view.ViewGroup;
|
|||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
import com.android.internal.R;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@@ -73,6 +73,11 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
|
|||||||
return mFormatItems;
|
return mFormatItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMaxItemHeight(int maxItemHeight) {
|
||||||
|
mMaxItemHeight = maxItemHeight;
|
||||||
|
requestLayout();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
|
|||||||
@@ -95,6 +95,9 @@ public abstract class AbsActionBarView extends ViewGroup {
|
|||||||
|
|
||||||
public void setContentHeight(int height) {
|
public void setContentHeight(int height) {
|
||||||
mContentHeight = height;
|
mContentHeight = height;
|
||||||
|
if (mMenuView != null) {
|
||||||
|
mMenuView.setMaxItemHeight(mContentHeight);
|
||||||
|
}
|
||||||
requestLayout();
|
requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user