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:
Adam Powell
2012-08-02 14:58:13 -07:00
committed by Android Git Automerger
4 changed files with 35 additions and 2 deletions

View File

@@ -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(),

View File

@@ -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 {

View File

@@ -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);

View File

@@ -95,6 +95,9 @@ public abstract class AbsActionBarView extends ViewGroup {
public void setContentHeight(int height) {
mContentHeight = height;
if (mMenuView != null) {
mMenuView.setMaxItemHeight(mContentHeight);
}
requestLayout();
}