66import android .content .ContextWrapper ;
77import android .content .Intent ;
88import android .content .res .Resources ;
9+ import android .os .Build ;
910import android .os .Bundle ;
1011import android .util .Log ;
1112import android .view .Menu ;
1718import androidx .annotation .DrawableRes ;
1819import androidx .annotation .Nullable ;
1920import androidx .annotation .Px ;
21+ import androidx .annotation .StringRes ;
2022import androidx .annotation .StyleRes ;
2123import androidx .appcompat .app .AppCompatActivity ;
2224import androidx .core .view .WindowInsetsCompat ;
@@ -50,6 +52,7 @@ public boolean onBackPressed(CompatActivity compatActivity) {
5052 private CompatActivity .OnActivityResultCallback onActivityResultCallback ;
5153 private CompatActivity .OnBackPressedCallback onBackPressedCallback ;
5254 private MenuItem .OnMenuItemClickListener menuClickListener ;
55+ private CharSequence menuContentDescription ;
5356 @ StyleRes private int setThemeDynamic = 0 ;
5457 private boolean onCreateCalled = false ;
5558 private boolean isRefreshUi = false ;
@@ -195,11 +198,29 @@ public int getNavigationBarHeight() { // How to improve this?
195198
196199 public void setActionBarExtraMenuButton (@ DrawableRes int drawableResId ,
197200 MenuItem .OnMenuItemClickListener menuClickListener ) {
201+ this .setActionBarExtraMenuButton (drawableResId ,
202+ menuClickListener , null );
203+ }
204+
205+ public void setActionBarExtraMenuButton (@ DrawableRes int drawableResId ,
206+ MenuItem .OnMenuItemClickListener menuClickListener ,
207+ @ StringRes int menuContentDescription ) {
208+ this .setActionBarExtraMenuButton (drawableResId ,
209+ menuClickListener , this .getString (menuContentDescription ));
210+ }
211+
212+ public void setActionBarExtraMenuButton (@ DrawableRes int drawableResId ,
213+ MenuItem .OnMenuItemClickListener menuClickListener ,
214+ CharSequence menuContentDescription ) {
198215 Objects .requireNonNull (menuClickListener );
199216 this .drawableResId = drawableResId ;
200217 this .menuClickListener = menuClickListener ;
218+ this .menuContentDescription = menuContentDescription ;
201219 if (this .menuItem != null ) {
202220 this .menuItem .setOnMenuItemClickListener (this .menuClickListener );
221+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
222+ this .menuItem .setContentDescription (this .menuContentDescription );
223+ }
203224 this .menuItem .setIcon (this .drawableResId );
204225 this .menuItem .setEnabled (true );
205226 this .menuItem .setVisible (true );
@@ -209,8 +230,12 @@ public void setActionBarExtraMenuButton(@DrawableRes int drawableResId,
209230 public void removeActionBarExtraMenuButton () {
210231 this .drawableResId = 0 ;
211232 this .menuClickListener = null ;
233+ this .menuContentDescription = null ;
212234 if (this .menuItem != null ) {
213235 this .menuItem .setOnMenuItemClickListener (null );
236+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
237+ this .menuItem .setContentDescription (null );
238+ }
214239 this .menuItem .setIcon (null );
215240 this .menuItem .setEnabled (false );
216241 this .menuItem .setVisible (false );
0 commit comments