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

Commit c619e74c authored by Gilles Debunne's avatar Gilles Debunne
Browse files

ActionBar makes room for icons when no title is provided

Change-Id: I5bd09e00b50496032deda40ea22367d727230611
parent 39a8dc4a
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();