diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java b/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java index 9736c206..6226ae24 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java @@ -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"; diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index 572c2bed..45d22e65 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -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) {