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

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

Merge "Bug 5249855 - Add support for content descriptions on action bar tabs"

parents 9a355fbb 94e56ef3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2487,12 +2487,15 @@ package android.app {
  public static abstract class ActionBar.Tab {
    ctor public ActionBar.Tab();
    method public abstract java.lang.CharSequence getContentDescription();
    method public abstract android.view.View getCustomView();
    method public abstract android.graphics.drawable.Drawable getIcon();
    method public abstract int getPosition();
    method public abstract java.lang.Object getTag();
    method public abstract java.lang.CharSequence getText();
    method public abstract void select();
    method public abstract android.app.ActionBar.Tab setContentDescription(int);
    method public abstract android.app.ActionBar.Tab setContentDescription(java.lang.CharSequence);
    method public abstract android.app.ActionBar.Tab setCustomView(android.view.View);
    method public abstract android.app.ActionBar.Tab setCustomView(int);
    method public abstract android.app.ActionBar.Tab setIcon(android.graphics.drawable.Drawable);
+31 −0
Original line number Diff line number Diff line
@@ -790,6 +790,37 @@ public abstract class ActionBar {
         * Select this tab. Only valid if the tab has been added to the action bar.
         */
        public abstract void select();

        /**
         * Set a description of this tab's content for use in accessibility support.
         * If no content description is provided the title will be used.
         *
         * @param resId A resource ID referring to the description text
         * @return The current instance for call chaining
         * @see #setContentDescription(CharSequence)
         * @see #getContentDescription()
         */
        public abstract Tab setContentDescription(int resId);

        /**
         * Set a description of this tab's content for use in accessibility support.
         * If no content description is provided the title will be used.
         *
         * @param contentDesc Description of this tab's content
         * @return The current instance for call chaining
         * @see #setContentDescription(int)
         * @see #getContentDescription()
         */
        public abstract Tab setContentDescription(CharSequence contentDesc);

        /**
         * Gets a brief description of this tab's content for use in accessibility support.
         *
         * @return Description of this tab's content
         * @see #setContentDescription(CharSequence)
         * @see #setContentDescription(int)
         */
        public abstract CharSequence getContentDescription();
    }

    /**
+20 −0
Original line number Diff line number Diff line
@@ -783,6 +783,7 @@ public class ActionBarImpl extends ActionBar {
        private Object mTag;
        private Drawable mIcon;
        private CharSequence mText;
        private CharSequence mContentDesc;
        private int mPosition = -1;
        private View mCustomView;

@@ -878,6 +879,25 @@ public class ActionBarImpl extends ActionBar {
        public void select() {
            selectTab(this);
        }

        @Override
        public Tab setContentDescription(int resId) {
            return setContentDescription(mContext.getResources().getText(resId));
        }

        @Override
        public Tab setContentDescription(CharSequence contentDesc) {
            mContentDesc = contentDesc;
            if (mPosition >= 0) {
                mTabScrollView.updateTab(mPosition);
            }
            return this;
        }

        @Override
        public CharSequence getContentDescription() {
            return mContentDesc;
        }
    }

    @Override
+2 −0
Original line number Diff line number Diff line
@@ -443,6 +443,8 @@ public class ScrollingTabContainerView extends HorizontalScrollView
                    mTextView.setVisibility(GONE);
                    mTextView.setText(null);
                }

                setContentDescription(tab.getContentDescription());
            }
        }