Change album,artist sort; fix menu selection bug

This commit is contained in:
Nicholas Narsing 2018-04-28 11:07:05 -04:00
commit 3b62a4578f
No known key found for this signature in database
GPG key ID: 6C867A2AC16B645A
2 changed files with 25 additions and 17 deletions

View file

@ -60,7 +60,8 @@ public final class SortOrder {
+ " DESC"; + " DESC";
/* Album sort order artist */ /* Album sort order artist */
String ALBUM_ARTIST = MediaStore.Audio.Artists.DEFAULT_SORT_ORDER; String ALBUM_ARTIST = MediaStore.Audio.Artists.DEFAULT_SORT_ORDER
+ ", " + MediaStore.Audio.Albums.DEFAULT_SORT_ORDER;
/* Album sort order year */ /* Album sort order year */
String ALBUM_YEAR = MediaStore.Audio.Albums.FIRST_YEAR + " DESC"; String ALBUM_YEAR = MediaStore.Audio.Albums.FIRST_YEAR + " DESC";

View file

@ -201,25 +201,11 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
menu.findItem(R.id.action_colored_footers).setChecked(absLibraryRecyclerViewCustomGridSizeFragment.usePalette()); menu.findItem(R.id.action_colored_footers).setChecked(absLibraryRecyclerViewCustomGridSizeFragment.usePalette());
menu.findItem(R.id.action_colored_footers).setEnabled(absLibraryRecyclerViewCustomGridSizeFragment.canUsePalette()); menu.findItem(R.id.action_colored_footers).setEnabled(absLibraryRecyclerViewCustomGridSizeFragment.canUsePalette());
if (currentFragment instanceof AlbumsFragment) { setUpSortOrderMenu(absLibraryRecyclerViewCustomGridSizeFragment, menu.findItem(R.id.action_sort_order).getSubMenu());
SubMenu sortOrderMenu = menu.findItem(R.id.action_sort_order).getSubMenu();
String currentSortOrder = absLibraryRecyclerViewCustomGridSizeFragment.getSortOrder();
sortOrderMenu.clear();
sortOrderMenu.add(0, R.id.action_album_sort_asc, 0, R.string.sort_a_z).setChecked(currentSortOrder == SortOrder.AlbumSortOrder.ALBUM_A_Z);
sortOrderMenu.add(0, R.id.action_album_sort_desc, 1, R.string.sort_z_a).setChecked(currentSortOrder == SortOrder.AlbumSortOrder.ALBUM_Z_A);
sortOrderMenu.add(0, R.id.action_album_sort_artist, 2, R.string.sort_artist).setChecked(currentSortOrder == SortOrder.AlbumSortOrder.ALBUM_ARTIST);
sortOrderMenu.setGroupCheckable(0, true, true);
} else if (currentFragment instanceof ArtistsFragment) {
SubMenu sortOrderMenu = menu.findItem(R.id.action_sort_order).getSubMenu();
String currentSortOrder = absLibraryRecyclerViewCustomGridSizeFragment.getSortOrder();
sortOrderMenu.clear();
sortOrderMenu.add(0, R.id.action_artist_sort_asc, 0, R.string.sort_a_z).setChecked(currentSortOrder == SortOrder.ArtistSortOrder.ARTIST_A_Z);
sortOrderMenu.add(0, R.id.action_artist_sort_desc, 1, R.string.sort_z_a).setChecked(currentSortOrder == SortOrder.ArtistSortOrder.ARTIST_Z_A);
sortOrderMenu.setGroupCheckable(0, true, true);
}
} else { } else {
menu.removeItem(R.id.action_grid_size); menu.removeItem(R.id.action_grid_size);
menu.removeItem(R.id.action_colored_footers); menu.removeItem(R.id.action_colored_footers);
menu.removeItem(R.id.action_sort_order);
} }
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
@ -353,6 +339,27 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
return false; return false;
} }
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
String currentSortOrder = fragment.getSortOrder();
sortOrderMenu.clear();
if (fragment instanceof AlbumsFragment) {
sortOrderMenu.add(0, R.id.action_album_sort_asc, 0, R.string.sort_a_z)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_A_Z));
sortOrderMenu.add(0, R.id.action_album_sort_desc, 1, R.string.sort_z_a)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A));
sortOrderMenu.add(0, R.id.action_album_sort_artist, 2, R.string.sort_artist)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST));
} else if (fragment instanceof ArtistsFragment) {
sortOrderMenu.add(0, R.id.action_artist_sort_asc, 0, R.string.sort_a_z)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z));
sortOrderMenu.add(0, R.id.action_artist_sort_desc, 1, R.string.sort_z_a)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A));
}
sortOrderMenu.setGroupCheckable(0, true, true);
}
private boolean handleSortOrderMenuItem(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull MenuItem item) { private boolean handleSortOrderMenuItem(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull MenuItem item) {
String sortOrder = null; String sortOrder = null;
if (fragment instanceof AlbumsFragment) { if (fragment instanceof AlbumsFragment) {