use the sort method in server queries
This commit is contained in:
parent
50fd0997dc
commit
821181d819
10 changed files with 76 additions and 36 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue