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
|
@Override
|
||||||
public String getSectionName(int position) {
|
public String getSectionName(int position) {
|
||||||
@Nullable String sectionName = null;
|
@Nullable String sectionName = null;
|
||||||
switch (PreferenceUtil.getInstance(activity).getAlbumSortOrder()) {
|
switch (PreferenceUtil.getInstance(activity).getAlbumSortMethod()) {
|
||||||
case SortMethod.NAME:
|
case SortMethod.NAME:
|
||||||
sectionName = dataSet.get(position).getTitle();
|
sectionName = dataSet.get(position).getTitle();
|
||||||
break;
|
break;
|
||||||
|
|
@ -198,7 +198,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
||||||
case SortMethod.YEAR:
|
case SortMethod.YEAR:
|
||||||
return MusicUtil.getYearString(dataSet.get(position).getYear());
|
return MusicUtil.getYearString(dataSet.get(position).getYear());
|
||||||
case SortMethod.RANDOM:
|
case SortMethod.RANDOM:
|
||||||
sectionName = dataSet.get(position).getTitle();
|
return activity.getResources().getString(R.string.random);
|
||||||
}
|
}
|
||||||
|
|
||||||
return MusicUtil.getSectionName(sectionName);
|
return MusicUtil.getSectionName(sectionName);
|
||||||
|
|
|
||||||
|
|
@ -179,13 +179,12 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
|
||||||
@Override
|
@Override
|
||||||
public String getSectionName(int position) {
|
public String getSectionName(int position) {
|
||||||
@Nullable String sectionName = null;
|
@Nullable String sectionName = null;
|
||||||
switch (PreferenceUtil.getInstance(activity).getArtistSortOrder()) {
|
switch (PreferenceUtil.getInstance(activity).getArtistSortMethod()) {
|
||||||
case SortMethod.NAME:
|
case SortMethod.NAME:
|
||||||
sectionName = dataSet.get(position).getName();
|
sectionName = dataSet.get(position).getName();
|
||||||
break;
|
break;
|
||||||
case SortMethod.RANDOM:
|
case SortMethod.RANDOM:
|
||||||
sectionName = dataSet.get(position).getName();
|
return activity.getResources().getString(R.string.random);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return MusicUtil.getSectionName(sectionName);
|
return MusicUtil.getSectionName(sectionName);
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable String sectionName = null;
|
@Nullable String sectionName = null;
|
||||||
switch (PreferenceUtil.getInstance(activity).getSongSortOrder()) {
|
switch (PreferenceUtil.getInstance(activity).getSongSortMethod()) {
|
||||||
case SortMethod.NAME:
|
case SortMethod.NAME:
|
||||||
sectionName = dataSet.get(position).title;
|
sectionName = dataSet.get(position).title;
|
||||||
break;
|
break;
|
||||||
|
|
@ -203,7 +203,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
||||||
case SortMethod.YEAR:
|
case SortMethod.YEAR:
|
||||||
return MusicUtil.getYearString(dataSet.get(position).year);
|
return MusicUtil.getYearString(dataSet.get(position).year);
|
||||||
case SortMethod.RANDOM:
|
case SortMethod.RANDOM:
|
||||||
sectionName = dataSet.get(position).title;
|
return activity.getResources().getString(R.string.random);
|
||||||
}
|
}
|
||||||
|
|
||||||
return MusicUtil.getSectionName(sectionName);
|
return MusicUtil.getSectionName(sectionName);
|
||||||
|
|
|
||||||
|
|
@ -349,7 +349,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpSortMethodMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
|
private void setUpSortMethodMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
|
||||||
String currentSortOrder = fragment.getSortOrder();
|
String currentSortOrder = fragment.getSortMethod();
|
||||||
sortOrderMenu.clear();
|
sortOrderMenu.clear();
|
||||||
|
|
||||||
if (fragment instanceof AlbumsFragment) {
|
if (fragment instanceof AlbumsFragment) {
|
||||||
|
|
@ -383,7 +383,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
|
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
|
||||||
String currentSortOrder = fragment.getSortOrder();
|
String currentSortOrder = fragment.getSortMethod();
|
||||||
sortOrderMenu.clear();
|
sortOrderMenu.clear();
|
||||||
|
|
||||||
sortOrderMenu.add(0, R.id.action_sort_order_ascending, 0, R.string.sort_order_a_z)
|
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> {
|
public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extends RecyclerView.Adapter, LM extends RecyclerView.LayoutManager> extends AbsLibraryPagerRecyclerViewFragment<A, LM> {
|
||||||
private int gridSize;
|
private int gridSize;
|
||||||
private String sortOrder;
|
private String sortMethod;
|
||||||
|
|
||||||
private boolean usePaletteInitialized;
|
private boolean usePaletteInitialized;
|
||||||
private boolean usePalette;
|
private boolean usePalette;
|
||||||
|
|
@ -46,12 +46,12 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
||||||
return usePalette;
|
return usePalette;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final String getSortOrder() {
|
public final String getSortMethod() {
|
||||||
if (sortOrder == null) {
|
if (sortMethod == null) {
|
||||||
sortOrder = loadSortOrder();
|
sortMethod = loadSortMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
return sortOrder;
|
return sortMethod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAndSaveGridSize(final int gridSize) {
|
public void setAndSaveGridSize(final int gridSize) {
|
||||||
|
|
@ -78,10 +78,10 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
||||||
setUsePalette(usePalette);
|
setUsePalette(usePalette);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAndSaveSortOrder(final String sortOrder) {
|
public void setAndSaveSortOrder(final String sortMethod) {
|
||||||
this.sortOrder = sortOrder;
|
this.sortMethod = sortMethod;
|
||||||
saveSortOrder(sortOrder);
|
saveSortMethod(sortMethod);
|
||||||
setSortOrder(sortOrder);
|
setSortMethod(sortMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canUsePalette() {
|
public boolean canUsePalette() {
|
||||||
|
|
@ -137,11 +137,11 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
|
||||||
|
|
||||||
protected abstract void setGridSize(int gridSize);
|
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() {
|
protected int getMaxGridSizeForList() {
|
||||||
if (isLandscape()) {
|
if (isLandscape()) {
|
||||||
|
|
|
||||||
|
|
@ -52,17 +52,17 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String loadSortOrder() {
|
protected String loadSortMethod() {
|
||||||
return PreferenceUtil.getInstance(getActivity()).getAlbumSortOrder();
|
return PreferenceUtil.getInstance(getActivity()).getAlbumSortMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSortOrder(String sortOrder) {
|
protected void saveSortMethod(String sortOrder) {
|
||||||
PreferenceUtil.getInstance(getActivity()).setAlbumSortOrder(sortOrder);
|
PreferenceUtil.getInstance(getActivity()).setAlbumSortMethod(sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setSortOrder(String sortOrder) {
|
protected void setSortMethod(String sortOrder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -59,17 +59,17 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String loadSortOrder() {
|
protected String loadSortMethod() {
|
||||||
return PreferenceUtil.getInstance(getActivity()).getArtistSortOrder();
|
return PreferenceUtil.getInstance(getActivity()).getArtistSortMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSortOrder(String sortOrder) {
|
protected void saveSortMethod(String sortMethod) {
|
||||||
PreferenceUtil.getInstance(getActivity()).setArtistSortOrder(sortOrder);
|
PreferenceUtil.getInstance(getActivity()).setArtistSortMethod(sortMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setSortOrder(String sortOrder) {
|
protected void setSortMethod(String sortOrder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -77,17 +77,17 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String loadSortOrder() {
|
protected String loadSortMethod() {
|
||||||
return PreferenceUtil.getInstance(getActivity()).getSongSortOrder();
|
return PreferenceUtil.getInstance(getActivity()).getSongSortMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSortOrder(String sortOrder) {
|
protected void saveSortMethod(String sortOrder) {
|
||||||
PreferenceUtil.getInstance(getActivity()).setSongSortOrder(sortOrder);
|
PreferenceUtil.getInstance(getActivity()).setSongSortMethod(sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setSortOrder(String sortOrder) {
|
protected void setSortMethod(String sortOrder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.kabouzeid.gramophone.util;
|
package com.kabouzeid.gramophone.util;
|
||||||
|
|
||||||
import com.kabouzeid.gramophone.App;
|
import com.kabouzeid.gramophone.App;
|
||||||
|
import com.kabouzeid.gramophone.helper.sort.SortMethod;
|
||||||
import com.kabouzeid.gramophone.interfaces.MediaCallback;
|
import com.kabouzeid.gramophone.interfaces.MediaCallback;
|
||||||
import com.kabouzeid.gramophone.model.Album;
|
import com.kabouzeid.gramophone.model.Album;
|
||||||
import com.kabouzeid.gramophone.model.Artist;
|
import com.kabouzeid.gramophone.model.Artist;
|
||||||
|
|
@ -127,6 +128,7 @@ public class QueryUtil {
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||||
query.setLimit(100);
|
query.setLimit(100);
|
||||||
query.setRecursive(true);
|
query.setRecursive(true);
|
||||||
|
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
|
||||||
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
||||||
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
|
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -168,6 +170,7 @@ public class QueryUtil {
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||||
query.setLimit(100);
|
query.setLimit(100);
|
||||||
query.setRecursive(true);
|
query.setRecursive(true);
|
||||||
|
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getArtistSortMethod());
|
||||||
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
||||||
App.getApiClient().GetAlbumArtistsAsync(query, new Response<ItemsResult>() {
|
App.getApiClient().GetAlbumArtistsAsync(query, new Response<ItemsResult>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -208,6 +211,7 @@ public class QueryUtil {
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||||
query.setLimit(100);
|
query.setLimit(100);
|
||||||
query.setRecursive(true);
|
query.setRecursive(true);
|
||||||
|
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
||||||
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
||||||
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
|
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
|
||||||
@Override
|
@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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
<string name="github" translatable="false">GitHub</string>
|
<string name="github" translatable="false">GitHub</string>
|
||||||
<string name="twitter" translatable="false">Twitter</string>
|
<string name="twitter" translatable="false">Twitter</string>
|
||||||
|
|
||||||
|
<string name="random" translatable="false">\?</string>
|
||||||
|
|
||||||
<string-array name="donation_ids" translatable="false">
|
<string-array name="donation_ids" translatable="false">
|
||||||
<item>donation_1</item>
|
<item>donation_1</item>
|
||||||
<item>donation_2</item>
|
<item>donation_2</item>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue