@Override
  public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem search = menu.findItem(R.id.action_search);
    MenuItem overflow = menu.findItem(R.id.action_overflow);
    // Theme chooser
    ThemeUtils.setActionBarItem(this, search, "apollo_search");
    ThemeUtils.setActionBarItem(this, overflow, "apollo_overflow");

    return super.onPrepareOptionsMenu(menu);
  }
  /** Initiate ViewPager and PagerAdapter */
  public void initPager() {
    // Initiate PagerAdapter
    PagerAdapter mPagerAdapter = new PagerAdapter(getFragmentManager());

    Bundle bundle = new Bundle();
    bundle.putString(MIME_TYPE, Audio.Playlists.CONTENT_TYPE);
    bundle.putLong(BaseColumns._ID, PLAYLIST_RECENTLY_ADDED);

    // Get tab visibility preferences
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    Set<String> defaults =
        new HashSet<String>(Arrays.asList(getResources().getStringArray(R.array.tab_titles)));
    Set<String> tabs_set = sp.getStringSet(TABS_ENABLED, defaults);
    // if its empty fill reset it to full defaults
    // stops app from crashing when no tabs are shown
    // TODO:rewrite activity to not crash when no tabs are chosen to show
    if (tabs_set.size() == 0) {
      tabs_set = defaults;
    }

    // Only show tabs that were set in preferences
    // Recently added tracks
    if (tabs_set.contains(getResources().getString(R.string.tab_recent)))
      mPagerAdapter.addFragment(new RecentlyAddedFragment(bundle));
    // Artists
    if (tabs_set.contains(getResources().getString(R.string.tab_artists)))
      mPagerAdapter.addFragment(new ArtistsFragment());
    // Albums
    if (tabs_set.contains(getResources().getString(R.string.tab_albums)))
      mPagerAdapter.addFragment(new AlbumsFragment());
    // // Tracks
    if (tabs_set.contains(getResources().getString(R.string.tab_songs)))
      mPagerAdapter.addFragment(new TracksFragment());
    // // Playlists
    if (tabs_set.contains(getResources().getString(R.string.tab_playlists)))
      mPagerAdapter.addFragment(new PlaylistsFragment());
    // // Genres
    if (tabs_set.contains(getResources().getString(R.string.tab_genres)))
      mPagerAdapter.addFragment(new GenresFragment());

    // Initiate ViewPager
    ViewPager mViewPager = (ViewPager) findViewById(R.id.viewPager);
    mViewPager.setPageMargin(getResources().getInteger(R.integer.viewpager_margin_width));
    mViewPager.setPageMarginDrawable(R.drawable.viewpager_margin);
    mViewPager.setOffscreenPageLimit(mPagerAdapter.getCount());
    mViewPager.setAdapter(mPagerAdapter);
    // mViewPager.setCurrentItem(0);

    // Tabs
    initScrollableTabs(mViewPager);

    // Theme chooser
    ThemeUtils.initThemeChooser(this, mViewPager, "viewpager", THEME_ITEM_BACKGROUND);
    ThemeUtils.setMarginDrawable(this, mViewPager, "viewpager_margin");
  }
  /** For the theme chooser */
  private void initActionBar() {

    ActionBar actBar = getActionBar();

    // The ActionBar Title and UP ids are hidden.
    int upId = Resources.getSystem().getIdentifier("up", "id", "android");

    ImageView actionBarUp = (ImageView) findViewById(upId);

    // Theme chooser
    ThemeUtils.setActionBarBackground(this, actBar, "action_bar_background");
    ThemeUtils.initThemeChooser(this, actionBarUp, "action_bar_up", THEME_ITEM_BACKGROUND);

    actBar.setDisplayUseLogoEnabled(true);
    actBar.setDisplayShowTitleEnabled(false);
  }
  /** Initiate the tabs */
  public void initScrollableTabs(ViewPager mViewPager) {
    ScrollableTabView mScrollingTabs = (ScrollableTabView) findViewById(R.id.scrollingTabs);
    ScrollingTabsAdapter mScrollingTabsAdapter = new ScrollingTabsAdapter(this);
    mScrollingTabs.setAdapter(mScrollingTabsAdapter);
    mScrollingTabs.setViewPager(mViewPager);

    // Theme chooser
    ThemeUtils.initThemeChooser(
        this, mScrollingTabs, "scrollable_tab_background", THEME_ITEM_BACKGROUND);
  }