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

Commit 703d3279 authored by Gilles Debunne's avatar Gilles Debunne Committed by Android (Google) Code Review
Browse files

Merge "ActionBar makes room for icons when no title is provided"

parents d1a1c09c c619e74c
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.internal.view.menu;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
@@ -103,6 +104,12 @@ public class ActionMenuItemView extends LinearLayout
        // TODO Support checkable action items
    }

    private void updateTextButtonVisibility() {
        boolean visible = !TextUtils.isEmpty(mTextButton.getText());
        visible = visible && (mImageButton.getDrawable() == null || mItemData.showsTextAsAction());
        mTextButton.setVisibility(visible ? VISIBLE : GONE);
    }

    public void setIcon(Drawable icon) {
        mImageButton.setImageDrawable(icon);
        if (icon != null) {
@@ -111,7 +118,7 @@ public class ActionMenuItemView extends LinearLayout
            mImageButton.setVisibility(GONE);
        }

        mTextButton.setVisibility(icon == null || mItemData.showsTextAsAction() ? VISIBLE : GONE);
        updateTextButtonVisibility();
    }

    public boolean hasText() {
@@ -128,10 +135,9 @@ public class ActionMenuItemView extends LinearLayout
        // populate accessibility description with title
        setContentDescription(title);

        if (mImageButton.getDrawable() == null || mItemData.showsTextAsAction()) {
        mTextButton.setText(mTitle);
            mTextButton.setVisibility(VISIBLE);
        }

        updateTextButtonVisibility();
    }

    public boolean showsIcon() {
+24 −24
Original line number Diff line number Diff line
@@ -15,26 +15,26 @@
 */
package com.android.internal.widget;

import com.android.internal.R;
import com.android.internal.view.menu.ActionMenuPresenter;
import com.android.internal.view.menu.ActionMenuView;
import com.android.internal.view.menu.MenuBuilder;

import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.ActionMode;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.DecelerateInterpolator;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.android.internal.R;
import com.android.internal.view.menu.ActionMenuPresenter;
import com.android.internal.view.menu.ActionMenuView;
import com.android.internal.view.menu.MenuBuilder;

/**
 * @hide
 */
@@ -130,28 +130,25 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
            mTitleLayout = (LinearLayout) getChildAt(getChildCount() - 1);
            mTitleView = (TextView) mTitleLayout.findViewById(R.id.action_bar_title);
            mSubtitleView = (TextView) mTitleLayout.findViewById(R.id.action_bar_subtitle);
            if (mTitle != null) {
                mTitleView.setText(mTitle);
            if (mTitleStyleRes != 0) {
                mTitleView.setTextAppearance(mContext, mTitleStyleRes);
            }
            }
            if (mSubtitle != null) {
                mSubtitleView.setText(mSubtitle);
            if (mSubtitleStyleRes != 0) {
                mSubtitleView.setTextAppearance(mContext, mSubtitleStyleRes);
            }
                mSubtitleView.setVisibility(VISIBLE);
        }
        } else {

        mTitleView.setText(mTitle);
        mSubtitleView.setText(mSubtitle);
            mSubtitleView.setVisibility(mSubtitle != null ? VISIBLE : GONE);

        final boolean hasTitle = !TextUtils.isEmpty(mTitle);
        final boolean hasSubtitle = !TextUtils.isEmpty(mSubtitle);
        mSubtitleView.setVisibility(hasSubtitle ? VISIBLE : GONE);
        mTitleLayout.setVisibility(hasTitle || hasSubtitle ? VISIBLE : GONE);
        if (mTitleLayout.getParent() == null) {
            addView(mTitleLayout);
        }
    }
    }

    public void initForMode(final ActionMode mode) {
        if (mClose == null) {
@@ -228,6 +225,7 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
        mAnimateInOnLayout = false;
    }

    @Override
    public boolean showOverflowMenu() {
        if (mMenuPresenter != null) {
            return mMenuPresenter.showOverflowMenu();
@@ -235,6 +233,7 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
        return false;
    }

    @Override
    public boolean hideOverflowMenu() {
        if (mMenuPresenter != null) {
            return mMenuPresenter.hideOverflowMenu();
@@ -242,6 +241,7 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
        return false;
    }

    @Override
    public boolean isOverflowMenuShowing() {
        if (mMenuPresenter != null) {
            return mMenuPresenter.isOverflowMenuShowing();