Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19e662ba authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Fix some ActionBar menu issues around config changes" into jb-mr1-dev

parents 2a642a45 d5c81db1
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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(),
+10 −0
Original line number Diff line number Diff line
@@ -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 {
+7 −2
Original line number Diff line number Diff line
@@ -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);
+3 −0
Original line number Diff line number Diff line
@@ -95,6 +95,9 @@ public abstract class AbsActionBarView extends ViewGroup {

    public void setContentHeight(int height) {
        mContentHeight = height;
        if (mMenuView != null) {
            mMenuView.setMaxItemHeight(mContentHeight);
        }
        requestLayout();
    }