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