use the sort method in server queries

This commit is contained in:
dkanada 2020-05-05 16:41:29 +09:00
commit 821181d819
10 changed files with 76 additions and 36 deletions

View file

@ -188,7 +188,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
@Override
public String getSectionName(int position) {
@Nullable String sectionName = null;
switch (PreferenceUtil.getInstance(activity).getAlbumSortOrder()) {
switch (PreferenceUtil.getInstance(activity).getAlbumSortMethod()) {
case SortMethod.NAME:
sectionName = dataSet.get(position).getTitle();
break;
@ -198,7 +198,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
case SortMethod.YEAR:
return MusicUtil.getYearString(dataSet.get(position).getYear());
case SortMethod.RANDOM:
sectionName = dataSet.get(position).getTitle();
return activity.getResources().getString(R.string.random);
}
return MusicUtil.getSectionName(sectionName);

View file

@ -179,13 +179,12 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
@Override
public String getSectionName(int position) {
@Nullable String sectionName = null;
switch (PreferenceUtil.getInstance(activity).getArtistSortOrder()) {
switch (PreferenceUtil.getInstance(activity).getArtistSortMethod()) {
case SortMethod.NAME:
sectionName = dataSet.get(position).getName();
break;
case SortMethod.RANDOM:
sectionName = dataSet.get(position).getName();
break;
return activity.getResources().getString(R.string.random);
}
return MusicUtil.getSectionName(sectionName);

View file

@ -190,7 +190,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
}
@Nullable String sectionName = null;
switch (PreferenceUtil.getInstance(activity).getSongSortOrder()) {
switch (PreferenceUtil.getInstance(activity).getSongSortMethod()) {
case SortMethod.NAME:
sectionName = dataSet.get(position).title;
break;
@ -203,7 +203,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
case SortMethod.YEAR:
return MusicUtil.getYearString(dataSet.get(position).year);
case SortMethod.RANDOM:
sectionName = dataSet.get(position).title;
return activity.getResources().getString(R.string.random);
}
return MusicUtil.getSectionName(sectionName);

View file

@ -349,7 +349,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
}
private void setUpSortMethodMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
String currentSortOrder = fragment.getSortOrder();
String currentSortOrder = fragment.getSortMethod();
sortOrderMenu.clear();
if (fragment instanceof AlbumsFragment) {
@ -383,7 +383,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
}
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
String currentSortOrder = fragment.getSortOrder();
String currentSortOrder = fragment.getSortMethod();
sortOrderMenu.clear();
sortOrderMenu.add(0, R.id.action_sort_order_ascending, 0, R.string.sort_order_a_z)

View file

@ -11,7 +11,7 @@ import com.kabouzeid.gramophone.util.Util;
public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extends RecyclerView.Adapter, LM extends RecyclerView.LayoutManager> extends AbsLibraryPagerRecyclerViewFragment<A, LM> {
private int gridSize;
private String sortOrder;
private String sortMethod;
private boolean usePaletteInitialized;
private boolean usePalette;
@ -46,12 +46,12 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
return usePalette;
}
public final String getSortOrder() {
if (sortOrder == null) {
sortOrder = loadSortOrder();
public final String getSortMethod() {
if (sortMethod == null) {
sortMethod = loadSortMethod();
}
return sortOrder;
return sortMethod;
}
public void setAndSaveGridSize(final int gridSize) {
@ -78,10 +78,10 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
setUsePalette(usePalette);
}
public void setAndSaveSortOrder(final String sortOrder) {
this.sortOrder = sortOrder;
saveSortOrder(sortOrder);
setSortOrder(sortOrder);
public void setAndSaveSortOrder(final String sortMethod) {
this.sortMethod = sortMethod;
saveSortMethod(sortMethod);
setSortMethod(sortMethod);
}
public boolean canUsePalette() {
@ -137,11 +137,11 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
protected abstract void setGridSize(int gridSize);
protected abstract String loadSortOrder();
protected abstract String loadSortMethod();
protected abstract void saveSortOrder(String sortOrder);
protected abstract void saveSortMethod(String sortOrder);
protected abstract void setSortOrder(String sortOrder);
protected abstract void setSortMethod(String sortOrder);
protected int getMaxGridSizeForList() {
if (isLandscape()) {

View file

@ -52,17 +52,17 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
}
@Override
protected String loadSortOrder() {
return PreferenceUtil.getInstance(getActivity()).getAlbumSortOrder();
protected String loadSortMethod() {
return PreferenceUtil.getInstance(getActivity()).getAlbumSortMethod();
}
@Override
protected void saveSortOrder(String sortOrder) {
PreferenceUtil.getInstance(getActivity()).setAlbumSortOrder(sortOrder);
protected void saveSortMethod(String sortOrder) {
PreferenceUtil.getInstance(getActivity()).setAlbumSortMethod(sortOrder);
}
@Override
protected void setSortOrder(String sortOrder) {
protected void setSortMethod(String sortOrder) {
}
@Override

View file

@ -59,17 +59,17 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
}
@Override
protected String loadSortOrder() {
return PreferenceUtil.getInstance(getActivity()).getArtistSortOrder();
protected String loadSortMethod() {
return PreferenceUtil.getInstance(getActivity()).getArtistSortMethod();
}
@Override
protected void saveSortOrder(String sortOrder) {
PreferenceUtil.getInstance(getActivity()).setArtistSortOrder(sortOrder);
protected void saveSortMethod(String sortMethod) {
PreferenceUtil.getInstance(getActivity()).setArtistSortMethod(sortMethod);
}
@Override
protected void setSortOrder(String sortOrder) {
protected void setSortMethod(String sortOrder) {
}
@Override

View file

@ -77,17 +77,17 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
}
@Override
protected String loadSortOrder() {
return PreferenceUtil.getInstance(getActivity()).getSongSortOrder();
protected String loadSortMethod() {
return PreferenceUtil.getInstance(getActivity()).getSongSortMethod();
}
@Override
protected void saveSortOrder(String sortOrder) {
PreferenceUtil.getInstance(getActivity()).setSongSortOrder(sortOrder);
protected void saveSortMethod(String sortOrder) {
PreferenceUtil.getInstance(getActivity()).setSongSortMethod(sortOrder);
}
@Override
protected void setSortOrder(String sortOrder) {
protected void setSortMethod(String sortOrder) {
}
@Override

View file

@ -1,6 +1,7 @@
package com.kabouzeid.gramophone.util;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.helper.sort.SortMethod;
import com.kabouzeid.gramophone.interfaces.MediaCallback;
import com.kabouzeid.gramophone.model.Album;
import com.kabouzeid.gramophone.model.Artist;
@ -127,6 +128,7 @@ public class QueryUtil {
query.setUserId(App.getApiClient().getCurrentUserId());
query.setLimit(100);
query.setRecursive(true);
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
@Override
@ -168,6 +170,7 @@ public class QueryUtil {
query.setUserId(App.getApiClient().getCurrentUserId());
query.setLimit(100);
query.setRecursive(true);
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getArtistSortMethod());
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
App.getApiClient().GetAlbumArtistsAsync(query, new Response<ItemsResult>() {
@Override
@ -208,6 +211,7 @@ public class QueryUtil {
query.setUserId(App.getApiClient().getCurrentUserId());
query.setLimit(100);
query.setRecursive(true);
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
@Override
@ -226,4 +230,39 @@ public class QueryUtil {
}
});
}
public static ItemQuery applySortMethod(ItemQuery query, String method) {
switch (method) {
case SortMethod.NAME:
query.setSortBy(new String[]{"SortName"});
break;
case SortMethod.ALBUM:
query.setSortBy(new String[]{"Album"});
break;
case SortMethod.ARTIST:
query.setSortBy(new String[]{"AlbumArtist"});
break;
case SortMethod.YEAR:
query.setSortBy(new String[]{"ProductionYear"});
break;
case SortMethod.RANDOM:
query.setSortBy(new String[]{"Random"});
break;
}
return query;
}
public static ArtistsQuery applySortMethod(ArtistsQuery query, String method) {
switch (method) {
case SortMethod.NAME:
query.setSortBy(new String[]{"SortName"});
break;
case SortMethod.RANDOM:
query.setSortBy(new String[]{"Random"});
break;
}
return query;
}
}