use enums for sort method and order
This commit is contained in:
parent
48e2f0fb3b
commit
85704bb95b
15 changed files with 107 additions and 155 deletions
|
|
@ -11,7 +11,6 @@ import android.view.MenuItem;
|
|||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
|
@ -19,7 +18,6 @@ import androidx.annotation.NonNull;
|
|||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.dkanada.gramophone.databinding.FragmentLibraryBinding;
|
||||
import com.dkanada.gramophone.fragments.mainactivity.library.pager.FavoritesFragment;
|
||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||
import com.dkanada.gramophone.util.ShortcutUtil;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
|
@ -31,8 +29,8 @@ import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
|
|||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.adapter.MusicLibraryPagerAdapter;
|
||||
import com.dkanada.gramophone.dialogs.CreatePlaylistDialog;
|
||||
import com.dkanada.gramophone.helper.sort.SortMethod;
|
||||
import com.dkanada.gramophone.helper.sort.SortOrder;
|
||||
import com.dkanada.gramophone.model.SortMethod;
|
||||
import com.dkanada.gramophone.model.SortOrder;
|
||||
import com.dkanada.gramophone.interfaces.CabHolder;
|
||||
import com.dkanada.gramophone.activities.MainActivity;
|
||||
import com.dkanada.gramophone.activities.SearchActivity;
|
||||
|
|
@ -343,7 +341,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
}
|
||||
|
||||
private void setUpSortMethodMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortMethodMenu) {
|
||||
String currentSortMethod = fragment.getSortMethod();
|
||||
SortMethod currentSortMethod = fragment.getSortMethod();
|
||||
sortMethodMenu.clear();
|
||||
|
||||
if (fragment instanceof AlbumsFragment) {
|
||||
|
|
@ -357,7 +355,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
.setChecked(currentSortMethod.equals(SortMethod.ADDED));
|
||||
sortMethodMenu.add(0, R.id.action_sort_method_random, 4, R.string.sort_method_random)
|
||||
.setChecked(currentSortMethod.equals(SortMethod.RANDOM));
|
||||
} else if (fragment instanceof SongsFragment || fragment instanceof FavoritesFragment) {
|
||||
} else if (fragment instanceof SongsFragment) {
|
||||
sortMethodMenu.add(0, R.id.action_sort_method_name, 0, R.string.sort_method_name)
|
||||
.setChecked(currentSortMethod.equals(SortMethod.NAME));
|
||||
sortMethodMenu.add(0, R.id.action_sort_method_album, 1, R.string.sort_method_album)
|
||||
|
|
@ -376,7 +374,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
}
|
||||
|
||||
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
|
||||
String currentSortOrder = fragment.getSortOrder();
|
||||
SortOrder currentSortOrder = fragment.getSortOrder();
|
||||
sortOrderMenu.clear();
|
||||
|
||||
sortOrderMenu.add(0, R.id.action_sort_order_ascending, 0, R.string.sort_order_ascending)
|
||||
|
|
@ -388,7 +386,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
}
|
||||
|
||||
private boolean handleSortMethodMenuItem(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull MenuItem item) {
|
||||
String sortMethod = null;
|
||||
SortMethod sortMethod = null;
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_sort_method_name:
|
||||
sortMethod = SortMethod.NAME;
|
||||
|
|
@ -420,7 +418,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
}
|
||||
|
||||
private boolean handleSortOrderMenuItem(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull MenuItem item) {
|
||||
String sortOrder = null;
|
||||
SortOrder sortOrder = null;
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_sort_order_ascending:
|
||||
sortOrder = SortOrder.ASCENDING;
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@ import androidx.annotation.NonNull;
|
|||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.model.SortMethod;
|
||||
import com.dkanada.gramophone.model.SortOrder;
|
||||
import com.dkanada.gramophone.util.Util;
|
||||
|
||||
public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extends RecyclerView.Adapter, L extends RecyclerView.LayoutManager, Q> extends AbsLibraryPagerRecyclerViewFragment<A, L, Q> {
|
||||
private int gridSize;
|
||||
private String sortMethod;
|
||||
private String sortOrder;
|
||||
private SortMethod sortMethod;
|
||||
private SortOrder sortOrder;
|
||||
|
||||
private boolean usePaletteInitialized;
|
||||
private boolean usePalette;
|
||||
|
|
@ -48,7 +50,7 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
|||
return usePalette;
|
||||
}
|
||||
|
||||
public final String getSortMethod() {
|
||||
public final SortMethod getSortMethod() {
|
||||
if (sortMethod == null) {
|
||||
sortMethod = loadSortMethod();
|
||||
}
|
||||
|
|
@ -56,7 +58,7 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
|||
return sortMethod;
|
||||
}
|
||||
|
||||
public final String getSortOrder() {
|
||||
public final SortOrder getSortOrder() {
|
||||
if (sortOrder == null) {
|
||||
sortOrder = loadSortOrder();
|
||||
}
|
||||
|
|
@ -88,14 +90,14 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
|||
setUsePalette(usePalette);
|
||||
}
|
||||
|
||||
public void setAndSaveSortMethod(final String sortMethod) {
|
||||
public void setAndSaveSortMethod(final SortMethod sortMethod) {
|
||||
this.sortMethod = sortMethod;
|
||||
saveSortMethod(sortMethod);
|
||||
setSortMethod(sortMethod);
|
||||
invalidateAdapter();
|
||||
}
|
||||
|
||||
public void setAndSaveSortOrder(final String sortOrder) {
|
||||
public void setAndSaveSortOrder(final SortOrder sortOrder) {
|
||||
this.sortOrder = sortOrder;
|
||||
saveSortOrder(sortOrder);
|
||||
setSortOrder(sortOrder);
|
||||
|
|
@ -157,17 +159,17 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
|||
|
||||
protected abstract void setGridSize(int gridSize);
|
||||
|
||||
protected abstract String loadSortMethod();
|
||||
protected abstract SortMethod loadSortMethod();
|
||||
|
||||
protected abstract void saveSortMethod(String sortMethod);
|
||||
protected abstract void saveSortMethod(SortMethod sortMethod);
|
||||
|
||||
protected abstract void setSortMethod(String sortMethod);
|
||||
protected abstract void setSortMethod(SortMethod sortMethod);
|
||||
|
||||
protected abstract String loadSortOrder();
|
||||
protected abstract SortOrder loadSortOrder();
|
||||
|
||||
protected abstract void saveSortOrder(String sortOrder);
|
||||
protected abstract void saveSortOrder(SortOrder sortOrder);
|
||||
|
||||
protected abstract void setSortOrder(String sortOrder);
|
||||
protected abstract void setSortOrder(SortOrder sortOrder);
|
||||
|
||||
protected int getMaxGridSizeForList() {
|
||||
if (isLandscape()) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import com.dkanada.gramophone.App;
|
|||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.adapter.album.AlbumAdapter;
|
||||
import com.dkanada.gramophone.model.Album;
|
||||
import com.dkanada.gramophone.model.SortMethod;
|
||||
import com.dkanada.gramophone.model.SortOrder;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
|
||||
|
|
@ -54,8 +56,8 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
|
|||
query.setStartIndex(getAdapter().getItemCount());
|
||||
query.setParentId(QueryUtil.currentLibrary.getId());
|
||||
|
||||
QueryUtil.applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
|
||||
QueryUtil.applySortOrder(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortOrder());
|
||||
query.setSortBy(new String[]{PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod().getApi()});
|
||||
query.setSortOrder(PreferenceUtil.getInstance(App.getInstance()).getAlbumSortOrder().getApi());
|
||||
return query;
|
||||
}
|
||||
|
||||
|
|
@ -89,31 +91,31 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
|
|||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortMethod() {
|
||||
protected SortMethod loadSortMethod() {
|
||||
return PreferenceUtil.getInstance(getActivity()).getAlbumSortMethod();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortMethod(String sortMethod) {
|
||||
protected void saveSortMethod(SortMethod sortMethod) {
|
||||
PreferenceUtil.getInstance(getActivity()).setAlbumSortMethod(sortMethod);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortMethod(String sortMethod) {
|
||||
protected void setSortMethod(SortMethod sortMethod) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortOrder() {
|
||||
protected SortOrder loadSortOrder() {
|
||||
return PreferenceUtil.getInstance(getActivity()).getAlbumSortOrder();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortOrder(String sortOrder) {
|
||||
protected void saveSortOrder(SortOrder sortOrder) {
|
||||
PreferenceUtil.getInstance(getActivity()).setAlbumSortOrder(sortOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortOrder(String sortOrder) {
|
||||
protected void setSortOrder(SortOrder sortOrder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import androidx.recyclerview.widget.GridLayoutManager;
|
|||
import com.dkanada.gramophone.App;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.adapter.artist.ArtistAdapter;
|
||||
import com.dkanada.gramophone.helper.sort.SortMethod;
|
||||
import com.dkanada.gramophone.helper.sort.SortOrder;
|
||||
import com.dkanada.gramophone.model.SortMethod;
|
||||
import com.dkanada.gramophone.model.SortOrder;
|
||||
import com.dkanada.gramophone.model.Artist;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
|
|
@ -101,31 +101,31 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
|
|||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortMethod() {
|
||||
protected SortMethod loadSortMethod() {
|
||||
return SortMethod.NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortMethod(String sortMethod) {
|
||||
protected void saveSortMethod(SortMethod sortMethod) {
|
||||
// not supported through API
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortMethod(String sortMethod) {
|
||||
protected void setSortMethod(SortMethod sortMethod) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortOrder() {
|
||||
protected SortOrder loadSortOrder() {
|
||||
return SortOrder.ASCENDING;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortOrder(String sortOrder) {
|
||||
protected void saveSortOrder(SortOrder sortOrder) {
|
||||
// not supported through API
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortOrder(String sortOrder) {
|
||||
protected void setSortOrder(SortOrder sortOrder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,19 +12,11 @@ public class FavoritesFragment extends SongsFragment {
|
|||
@NonNull
|
||||
@Override
|
||||
protected ItemQuery createQuery() {
|
||||
ItemQuery query = new ItemQuery();
|
||||
ItemQuery query = super.createQuery();
|
||||
|
||||
query.setIncludeItemTypes(new String[]{"Audio"});
|
||||
query.setFields(new ItemFields[]{ItemFields.MediaSources});
|
||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||
query.setRecursive(true);
|
||||
query.setLimit(PreferenceUtil.getInstance(App.getInstance()).getPageSize());
|
||||
query.setStartIndex(getAdapter().getItemCount());
|
||||
query.setParentId(QueryUtil.currentLibrary.getId());
|
||||
// the only difference from the songs fragment is the favorite filter
|
||||
query.setFilters(new ItemFilter[]{ItemFilter.IsFavorite});
|
||||
|
||||
QueryUtil.applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
||||
QueryUtil.applySortOrder(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortOrder());
|
||||
return query;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import com.dkanada.gramophone.R;
|
|||
import com.dkanada.gramophone.adapter.song.ShuffleButtonSongAdapter;
|
||||
import com.dkanada.gramophone.adapter.song.SongAdapter;
|
||||
import com.dkanada.gramophone.model.Song;
|
||||
import com.dkanada.gramophone.model.SortMethod;
|
||||
import com.dkanada.gramophone.model.SortOrder;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.dkanada.gramophone.util.QueryUtil;
|
||||
|
||||
|
|
@ -76,8 +78,8 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
|
|||
query.setStartIndex(getAdapter().getItemCount());
|
||||
query.setParentId(QueryUtil.currentLibrary.getId());
|
||||
|
||||
QueryUtil.applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
||||
QueryUtil.applySortOrder(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortOrder());
|
||||
query.setSortBy(new String[]{PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod().getApi()});
|
||||
query.setSortOrder(PreferenceUtil.getInstance(App.getInstance()).getSongSortOrder().getApi());
|
||||
return query;
|
||||
}
|
||||
|
||||
|
|
@ -112,31 +114,31 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
|
|||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortMethod() {
|
||||
protected SortMethod loadSortMethod() {
|
||||
return PreferenceUtil.getInstance(getActivity()).getSongSortMethod();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortMethod(String sortMethod) {
|
||||
protected void saveSortMethod(SortMethod sortMethod) {
|
||||
PreferenceUtil.getInstance(getActivity()).setSongSortMethod(sortMethod);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortMethod(String sortMethod) {
|
||||
protected void setSortMethod(SortMethod sortMethod) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String loadSortOrder() {
|
||||
protected SortOrder loadSortOrder() {
|
||||
return PreferenceUtil.getInstance(getActivity()).getSongSortOrder();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveSortOrder(String sortOrder) {
|
||||
protected void saveSortOrder(SortOrder sortOrder) {
|
||||
PreferenceUtil.getInstance(getActivity()).setSongSortOrder(sortOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setSortOrder(String sortOrder) {
|
||||
protected void setSortOrder(SortOrder sortOrder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue