@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(); }