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";
/* 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 */
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).setEnabled(absLibraryRecyclerViewCustomGridSizeFragment.canUsePalette());
if (currentFragment instanceof AlbumsFragment) {
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);
}
setUpSortOrderMenu(absLibraryRecyclerViewCustomGridSizeFragment, menu.findItem(R.id.action_sort_order).getSubMenu());
} else {
menu.removeItem(R.id.action_grid_size);
menu.removeItem(R.id.action_colored_footers);
menu.removeItem(R.id.action_sort_order);
}
Activity activity = getActivity();
if (activity == null) return;
@ -353,6 +339,27 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
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) {
String sortOrder = null;
if (fragment instanceof AlbumsFragment) {