1 package com.android.ex.photo; 2 3 4 import android.graphics.drawable.Drawable; 5 import androidx.appcompat.app.ActionBar; 6 7 /** 8 * Wrapper around {@link ActionBar}. 9 */ 10 public class ActionBarWrapper implements ActionBarInterface { 11 12 private final ActionBar mActionBar; 13 14 private class MenuVisiblityListenerWrapper implements ActionBar.OnMenuVisibilityListener { 15 16 private final ActionBarInterface.OnMenuVisibilityListener mWrapped; 17 MenuVisiblityListenerWrapper(ActionBarInterface.OnMenuVisibilityListener wrapped)18 public MenuVisiblityListenerWrapper(ActionBarInterface.OnMenuVisibilityListener wrapped) { 19 mWrapped = wrapped; 20 } 21 22 @Override onMenuVisibilityChanged(boolean isVisible)23 public void onMenuVisibilityChanged(boolean isVisible) { 24 mWrapped.onMenuVisibilityChanged(isVisible); 25 } 26 } 27 ActionBarWrapper(ActionBar actionBar)28 public ActionBarWrapper(ActionBar actionBar) { 29 mActionBar = actionBar; 30 } 31 32 @Override setDisplayHomeAsUpEnabled(boolean showHomeAsUp)33 public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) { 34 mActionBar.setDisplayHomeAsUpEnabled(showHomeAsUp); 35 } 36 37 @Override addOnMenuVisibilityListener(OnMenuVisibilityListener listener)38 public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) { 39 mActionBar.addOnMenuVisibilityListener(new MenuVisiblityListenerWrapper(listener)); 40 } 41 42 @Override setDisplayOptionsShowTitle()43 public void setDisplayOptionsShowTitle() { 44 mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE); 45 } 46 47 @Override getTitle()48 public CharSequence getTitle() { 49 return mActionBar.getTitle(); 50 } 51 52 @Override setTitle(CharSequence title)53 public void setTitle(CharSequence title) { 54 mActionBar.setTitle(title); 55 } 56 57 @Override setSubtitle(CharSequence subtitle)58 public void setSubtitle(CharSequence subtitle) { 59 mActionBar.setSubtitle(subtitle); 60 } 61 62 @Override show()63 public void show() { 64 mActionBar.show(); 65 } 66 67 @Override hide()68 public void hide() { 69 mActionBar.hide(); 70 } 71 72 @Override setLogo(Drawable logo)73 public void setLogo(Drawable logo) { 74 mActionBar.setLogo(logo); 75 } 76 77 } 78