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

Commit 94e56ef3 authored by Adam Powell's avatar Adam Powell
Browse files

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

Add API support for supplying content descriptions on action bar tabs.
This helps accessibility in cases where no title text is shown.

Change-Id: I8fdc4c2f2b279871b9f24b0b16e5167879b22741
parent 1d124d50
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());
            }
        }