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