use enums for sort method and order

This commit is contained in:
dkanada 2021-05-23 21:52:01 +09:00
commit 85704bb95b
15 changed files with 107 additions and 155 deletions

View file

@ -11,8 +11,8 @@ import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.dkanada.gramophone.model.Theme;
import com.dkanada.gramophone.R;
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.CategoryInfo;
import com.dkanada.gramophone.model.Codec;
import com.dkanada.gramophone.interfaces.base.PreferenceMigration;
@ -227,43 +227,43 @@ public final class PreferenceUtil {
return mPreferences.getBoolean(BLUR_ALBUM_COVER, true);
}
public final String getAlbumSortOrder() {
return mPreferences.getString(ALBUM_SORT_ORDER, SortOrder.DESCENDING);
public final SortOrder getAlbumSortOrder() {
return SortOrder.valueOf(mPreferences.getString(ALBUM_SORT_ORDER, SortOrder.DESCENDING.toString()));
}
public void setAlbumSortOrder(final String sortOrder) {
public void setAlbumSortOrder(SortOrder sortOrder) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putString(ALBUM_SORT_ORDER, sortOrder);
editor.putString(ALBUM_SORT_ORDER, sortOrder.toString());
editor.apply();
}
public final String getSongSortOrder() {
return mPreferences.getString(SONG_SORT_ORDER, SortOrder.DESCENDING);
public final SortOrder getSongSortOrder() {
return SortOrder.valueOf(mPreferences.getString(SONG_SORT_ORDER, SortOrder.DESCENDING.toString()));
}
public void setSongSortOrder(final String sortOrder) {
public void setSongSortOrder(SortOrder sortOrder) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putString(SONG_SORT_ORDER, sortOrder);
editor.putString(SONG_SORT_ORDER, sortOrder.toString());
editor.apply();
}
public final String getAlbumSortMethod() {
return mPreferences.getString(ALBUM_SORT_METHOD, SortMethod.RANDOM);
public final SortMethod getAlbumSortMethod() {
return SortMethod.valueOf(mPreferences.getString(ALBUM_SORT_METHOD, SortMethod.RANDOM.toString()));
}
public void setAlbumSortMethod(final String sortMethod) {
public void setAlbumSortMethod(SortMethod sortMethod) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putString(ALBUM_SORT_METHOD, sortMethod);
editor.putString(ALBUM_SORT_METHOD, sortMethod.toString());
editor.apply();
}
public final String getSongSortMethod() {
return mPreferences.getString(SONG_SORT_METHOD, SortMethod.RANDOM);
public final SortMethod getSongSortMethod() {
return SortMethod.valueOf(mPreferences.getString(SONG_SORT_METHOD, SortMethod.RANDOM.toString()));
}
public void setSongSortMethod(final String sortMethod) {
public void setSongSortMethod(SortMethod sortMethod) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putString(SONG_SORT_METHOD, sortMethod);
editor.putString(SONG_SORT_METHOD, sortMethod.toString());
editor.apply();
}

View file

@ -1,8 +1,6 @@
package com.dkanada.gramophone.util;
import com.dkanada.gramophone.App;
import com.dkanada.gramophone.helper.sort.SortMethod;
import com.dkanada.gramophone.helper.sort.SortOrder;
import com.dkanada.gramophone.interfaces.MediaCallback;
import com.dkanada.gramophone.model.Album;
import com.dkanada.gramophone.model.Artist;
@ -121,7 +119,6 @@ public class QueryUtil {
public static void getAlbums(ItemQuery query, MediaCallback<Album> callback) {
query.setIncludeItemTypes(new String[]{"MusicAlbum"});
applyProperties(query);
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
@Override
public void onResponse(ItemsResult result) {
@ -165,7 +162,6 @@ public class QueryUtil {
query.setIncludeItemTypes(new String[]{"Audio"});
query.setFields(new ItemFields[]{ItemFields.MediaSources});
applyProperties(query);
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
App.getApiClient().GetItemsAsync(query, new Response<ItemsResult>() {
@Override
public void onResponse(ItemsResult result) {
@ -205,44 +201,4 @@ public class QueryUtil {
if (currentLibrary == null || query.getParentId() != null) return;
query.setParentId(currentLibrary.getId());
}
public static void applySortMethod(ItemQuery query, String method) {
// album activity will always sort by track number
if (query.getSortBy().length != 0) return;
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.ADDED:
query.setSortBy(new String[]{"DateCreated"});
break;
case SortMethod.RANDOM:
query.setSortBy(new String[]{"Random"});
break;
case SortMethod.COUNT:
query.setSortBy(new String[]{"PlayCount"});
break;
}
}
public static void applySortOrder(ItemQuery query, String order) {
switch (order) {
case SortOrder.ASCENDING:
query.setSortOrder(org.jellyfin.apiclient.model.entities.SortOrder.Ascending);
break;
case SortOrder.DESCENDING:
query.setSortOrder(org.jellyfin.apiclient.model.entities.SortOrder.Descending);
break;
}
}
}

View file

@ -1,8 +1,8 @@
package com.dkanada.gramophone.util;
import com.dkanada.gramophone.App;
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.MediaCallback;
import com.dkanada.gramophone.model.Song;
@ -19,8 +19,8 @@ public class ShortcutUtil {
public static void getFrequent(MediaCallback<Song> callback) {
ItemQuery query = new ItemQuery();
QueryUtil.applySortMethod(query, SortMethod.COUNT);
QueryUtil.applySortOrder(query, SortOrder.DESCENDING);
query.setSortBy(new String[]{SortMethod.COUNT.getApi()});
query.setSortOrder(SortOrder.DESCENDING.getApi());
getSongs(query, callback);
}
@ -28,8 +28,8 @@ public class ShortcutUtil {
public static void getLatest(MediaCallback<Song> callback) {
ItemQuery query = new ItemQuery();
QueryUtil.applySortMethod(query, SortMethod.ADDED);
QueryUtil.applySortOrder(query, SortOrder.DESCENDING);
query.setSortBy(new String[]{SortMethod.ADDED.getApi()});
query.setSortOrder(SortOrder.DESCENDING.getApi());
getSongs(query, callback);
}
@ -37,8 +37,8 @@ public class ShortcutUtil {
public static void getShuffle(MediaCallback<Song> callback) {
ItemQuery query = new ItemQuery();
QueryUtil.applySortMethod(query, SortMethod.RANDOM);
QueryUtil.applySortOrder(query, SortOrder.DESCENDING);
query.setSortBy(new String[]{SortMethod.RANDOM.getApi()});
query.setSortOrder(SortOrder.DESCENDING.getApi());
getSongs(query, callback);
}