/** {@inheritDoc} */ @Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case R.id.menu_shuffle: // Shuffle all the songs MusicUtils.shuffleAll(getActivity()); return true; case R.id.menu_favorite: // Toggle the current track as a favorite and update the menu // item MusicUtils.toggleFavorite(); getActivity().invalidateOptionsMenu(); return true; case R.id.menu_sort_by_az: if (isArtistPage()) { mPreferences.setArtistSortOrder(SortOrder.ArtistSortOrder.ARTIST_A_Z); getArtistFragment().refresh(); } else if (isAlbumPage()) { mPreferences.setAlbumSortOrder(SortOrder.AlbumSortOrder.ALBUM_A_Z); getAlbumFragment().refresh(); } else if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_A_Z); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_za: if (isArtistPage()) { mPreferences.setArtistSortOrder(SortOrder.ArtistSortOrder.ARTIST_Z_A); getArtistFragment().refresh(); } else if (isAlbumPage()) { mPreferences.setAlbumSortOrder(SortOrder.AlbumSortOrder.ALBUM_Z_A); getAlbumFragment().refresh(); } else if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_Z_A); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_artist: if (isAlbumPage()) { mPreferences.setAlbumSortOrder(SortOrder.AlbumSortOrder.ALBUM_ARTIST); getAlbumFragment().refresh(); } else if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_ARTIST); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_album: if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_ALBUM); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_year: if (isAlbumPage()) { mPreferences.setAlbumSortOrder(SortOrder.AlbumSortOrder.ALBUM_YEAR); getAlbumFragment().refresh(); } else if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_YEAR); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_duration: if (isSongPage()) { mPreferences.setSongSortOrder(SortOrder.SongSortOrder.SONG_DURATION); getSongFragment().refresh(); } return true; case R.id.menu_sort_by_number_of_songs: if (isArtistPage()) { mPreferences.setArtistSortOrder(SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_SONGS); getArtistFragment().refresh(); } else if (isAlbumPage()) { mPreferences.setAlbumSortOrder(SortOrder.AlbumSortOrder.ALBUM_NUMBER_OF_SONGS); getAlbumFragment().refresh(); } return true; case R.id.menu_sort_by_number_of_albums: if (isArtistPage()) { mPreferences.setArtistSortOrder(SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_ALBUMS); getArtistFragment().refresh(); } return true; case R.id.menu_view_as_simple: if (isRecentPage()) { mPreferences.setRecentLayout("simple"); } else if (isArtistPage()) { mPreferences.setArtistLayout("simple"); } else if (isAlbumPage()) { mPreferences.setAlbumLayout("simple"); } NavUtils.goHome(getActivity()); return true; case R.id.menu_view_as_detailed: if (isRecentPage()) { mPreferences.setRecentLayout("detailed"); } else if (isArtistPage()) { mPreferences.setArtistLayout("detailed"); } else if (isAlbumPage()) { mPreferences.setAlbumLayout("detailed"); } NavUtils.goHome(getActivity()); return true; case R.id.menu_view_as_grid: if (isRecentPage()) { mPreferences.setRecentLayout("grid"); } else if (isArtistPage()) { mPreferences.setArtistLayout("grid"); } else if (isAlbumPage()) { mPreferences.setAlbumLayout("grid"); } NavUtils.goHome(getActivity()); return true; default: break; } return super.onOptionsItemSelected(item); }