diff --git a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index 8a6500d9..d614d1c7 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -207,12 +207,11 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde // TODO the API doesn't support artist sorting if (currentFragment instanceof ArtistsFragment) { menu.removeItem(R.id.action_sort_method); + menu.removeItem(R.id.action_sort_order); } else { setUpSortMethodMenu(absLibraryRecyclerViewCustomGridSizeFragment, menu.findItem(R.id.action_sort_method).getSubMenu()); + setUpSortOrderMenu(absLibraryRecyclerViewCustomGridSizeFragment, menu.findItem(R.id.action_sort_order).getSubMenu()); } - - // TODO implement sort order - menu.removeItem(R.id.action_sort_order); } else { menu.removeItem(R.id.action_grid_size); menu.removeItem(R.id.action_colored_footers); @@ -252,6 +251,10 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde if (handleSortMethodMenuItem(absLibraryRecyclerViewCustomGridSizeFragment, item)) { return true; } + + if (handleSortOrderMenuItem(absLibraryRecyclerViewCustomGridSizeFragment, item)) { + return true; + } } int id = item.getItemId(); @@ -392,7 +395,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde } private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) { - String currentSortOrder = fragment.getSortMethod(); + String currentSortOrder = fragment.getSortOrder(); sortOrderMenu.clear(); sortOrderMenu.add(0, R.id.action_sort_order_ascending, 0, R.string.sort_order_ascending) @@ -435,6 +438,26 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde return false; } + private boolean handleSortOrderMenuItem(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull MenuItem item) { + String sortOrder = null; + switch (item.getItemId()) { + case R.id.action_sort_order_ascending: + sortOrder = SortOrder.ASCENDING; + break; + case R.id.action_sort_order_descending: + sortOrder = SortOrder.DESCENDING; + break; + } + + if (sortOrder != null) { + item.setChecked(true); + fragment.setAndSaveSortOrder(sortOrder); + return true; + } + + return false; + } + @Override public boolean handleBackPress() { if (cab != null && cab.isActive()) { diff --git a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java index 03276326..3814a2db 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java @@ -12,6 +12,7 @@ import com.dkanada.gramophone.util.Util; public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment extends AbsLibraryPagerRecyclerViewFragment { private int gridSize; private String sortMethod; + private String sortOrder; private boolean usePaletteInitialized; private boolean usePalette; @@ -54,6 +55,14 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment