@Override
  void addShowFolderViewButton(boolean enable) {
    if (enable && getActivity() != null) {
      int width = Utilities.getPixelValue(getActivity(), 48);
      int height = Utilities.getPixelValue(getActivity(), 32);
      final Toolbar.LayoutParams layoutParamsCollapsed =
          new Toolbar.LayoutParams(width, height, Gravity.RIGHT);
      final Toolbar toolbar = ((NewDrawerActivity) getActivity()).getToolbar();
      toolbar.removeView(mFolderViewToggleButton);
      mFolderViewToggleButton = new ImageView(getActivity());
      mFolderViewToggleButton.setAlpha(0.75f);
      if (StorageManager.getBooleanSetting(
          getActivity(), StorageManager.FOLDER_VIEW_ENABLED, true)) {
        mFolderViewToggleButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_list));
      } else {
        mFolderViewToggleButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_folder));
      }

      mFolderViewToggleButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (StorageManager.getBooleanSetting(
                  getActivity(), StorageManager.FOLDER_VIEW_ENABLED, true)) {
                StorageManager.setFolderEnabledSetting(getActivity(), false);
                mFolderViewToggleButton.setImageDrawable(
                    getResources().getDrawable(R.drawable.ic_folder));
              } else {
                StorageManager.setFolderEnabledSetting(getActivity(), true);
                mFolderViewToggleButton.setImageDrawable(
                    getResources().getDrawable(R.drawable.ic_list));
              }
              getNavigationManager().reset(NavigationManager.ROOT);
              refresh();
            }
          });

      toolbar.addView(mFolderViewToggleButton, layoutParamsCollapsed);
    } else {
      if (getActivity() != null) {
        final Toolbar toolbar = ((NewDrawerActivity) getActivity()).getToolbar();

        toolbar.removeView(mFolderViewToggleButton);
      }
    }
    setSearchFilters();
  }
 @Override
 public void setCustomView(View view) {
   if (mCustomView != null && (mDisplayOpts & ActionBar.DISPLAY_SHOW_CUSTOM) != 0) {
     mToolbar.removeView(mCustomView);
   }
   mCustomView = view;
   if (view != null && (mDisplayOpts & ActionBar.DISPLAY_SHOW_CUSTOM) != 0) {
     mToolbar.addView(mCustomView);
   }
 }
  @Override
  public void setNavigationMode(int mode) {
    final int oldMode = mNavigationMode;
    if (mode != oldMode) {
      switch (oldMode) {
        case ActionBar.NAVIGATION_MODE_LIST:
          if (mSpinner != null && mSpinner.getParent() == mToolbar) {
            mToolbar.removeView(mSpinner);
          }
          break;
        case ActionBar.NAVIGATION_MODE_TABS:
          if (mTabView != null && mTabView.getParent() == mToolbar) {
            mToolbar.removeView(mTabView);
          }
          break;
      }

      mNavigationMode = mode;

      switch (mode) {
        case ActionBar.NAVIGATION_MODE_STANDARD:
          break;
        case ActionBar.NAVIGATION_MODE_LIST:
          ensureSpinner();
          mToolbar.addView(mSpinner, 0);
          break;
        case ActionBar.NAVIGATION_MODE_TABS:
          if (mTabView != null) {
            mToolbar.addView(mTabView, 0);
            Toolbar.LayoutParams lp = (Toolbar.LayoutParams) mTabView.getLayoutParams();
            lp.width = ViewGroup.LayoutParams.WRAP_CONTENT;
            lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
            lp.gravity = Gravity.START | Gravity.BOTTOM;
          }
          break;
        default:
          throw new IllegalArgumentException("Invalid navigation mode " + mode);
      }
    }
  }
 @Override
 public void setEmbeddedTabView(ScrollingTabContainerView tabView) {
   if (mTabView != null && mTabView.getParent() == mToolbar) {
     mToolbar.removeView(mTabView);
   }
   mTabView = tabView;
   if (tabView != null && mNavigationMode == ActionBar.NAVIGATION_MODE_TABS) {
     mToolbar.addView(mTabView, 0);
     Toolbar.LayoutParams lp = (Toolbar.LayoutParams) mTabView.getLayoutParams();
     lp.width = ViewGroup.LayoutParams.WRAP_CONTENT;
     lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
     lp.gravity = Gravity.START | Gravity.BOTTOM;
     tabView.setAllowCollapse(true);
   }
 }
  @Override
  public void setDisplayOptions(int newOpts) {
    final int oldOpts = mDisplayOpts;
    final int changed = oldOpts ^ newOpts;
    mDisplayOpts = newOpts;
    if (changed != 0) {
      if ((changed & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
        if ((newOpts & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
          updateNavigationIcon();
          updateHomeAccessibility();
        } else {
          mToolbar.setNavigationIcon(null);
        }
      }

      if ((changed & AFFECTS_LOGO_MASK) != 0) {
        updateToolbarLogo();
      }

      if ((changed & ActionBar.DISPLAY_SHOW_TITLE) != 0) {
        if ((newOpts & ActionBar.DISPLAY_SHOW_TITLE) != 0) {
          mToolbar.setTitle(mTitle);
          mToolbar.setSubtitle(mSubtitle);
        } else {
          mToolbar.setTitle(null);
          mToolbar.setSubtitle(null);
        }
      }

      if ((changed & ActionBar.DISPLAY_SHOW_CUSTOM) != 0 && mCustomView != null) {
        if ((newOpts & ActionBar.DISPLAY_SHOW_CUSTOM) != 0) {
          mToolbar.addView(mCustomView);
        } else {
          mToolbar.removeView(mCustomView);
        }
      }
    }
  }
 @Override
 public void onPause() {
   mToolbar.removeView(mNavigationSpinner);
   super.onPause();
 }