diff --git a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java index 7d031a9f..9e233c30 100644 --- a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java @@ -22,6 +22,7 @@ import java.util.List; public final class PreferenceUtil { public static final String CATEGORIES = "library_categories"; + public static final String MAXIMUM_LIST_SIZE = "maximum_list_size"; public static final String REMEMBER_LAST_TAB = "remember_last_tab"; public static final String LAST_TAB = "last_tab"; @@ -47,22 +48,22 @@ public final class PreferenceUtil { public static final String ARTIST_COLORED_FOOTERS = "artist_colored_footers"; public static final String ALBUM_ARTIST_COLORED_FOOTERS = "album_artist_colored_footers"; - public static final String COLORED_NOTIFICATION = "colored_notification"; - public static final String CLASSIC_NOTIFICATION = "classic_notification"; - public static final String GENERAL_THEME = "general_theme"; public static final String COLORED_NAVIGATION_BAR = "should_color_navigation_bar"; public static final String COLORED_SHORTCUTS = "colored_shortcuts"; + public static final String CLASSIC_NOTIFICATION = "classic_notification"; + public static final String COLORED_NOTIFICATION = "colored_notification"; + + public static final String SHOW_ALBUM_COVER = "show_album_cover"; + public static final String BLUR_ALBUM_COVER = "blur_album_cover"; + public static final String TRANSCODE_CODEC = "transcode_codec"; public static final String MAXIMUM_BITRATE = "maximum_bitrate"; public static final String AUDIO_DUCKING = "audio_ducking"; public static final String REMEMBER_SHUFFLE = "remember_shuffle"; public static final String REMEMBER_QUEUE = "remember_queue"; - public static final String SHOW_ALBUM_COVER = "show_album_cover"; - public static final String BLUR_ALBUM_COVER = "blur_album_cover"; - public static final String SLEEP_TIMER_LAST_VALUE = "sleep_timer_last_value"; public static final String SLEEP_TIMER_ELAPSED_REALTIME = "sleep_timer_elapsed_real_time"; public static final String SLEEP_TIMER_FINISH_SONG = "sleep_timer_finish_music"; @@ -113,6 +114,10 @@ public final class PreferenceUtil { return mPreferences.getBoolean(REMEMBER_LAST_TAB, true); } + public final int getMaximumListSize() { + return Integer.parseInt(mPreferences.getString(MAXIMUM_LIST_SIZE, "100")); + } + public final int getLastTab() { return mPreferences.getInt(LAST_TAB, 0); } @@ -149,8 +154,7 @@ public final class PreferenceUtil { } public final boolean getClassicNotification() { - return mPreferences.getBoolean(CLASSIC_NOTIFICATION, - Build.VERSION.SDK_INT <= Build.VERSION_CODES.O); + return mPreferences.getBoolean(CLASSIC_NOTIFICATION, Build.VERSION.SDK_INT <= Build.VERSION_CODES.O); } public void setClassicNotification(final boolean value) { diff --git a/app/src/main/java/com/dkanada/gramophone/util/QueryUtil.java b/app/src/main/java/com/dkanada/gramophone/util/QueryUtil.java index be567347..27e776df 100644 --- a/app/src/main/java/com/dkanada/gramophone/util/QueryUtil.java +++ b/app/src/main/java/com/dkanada/gramophone/util/QueryUtil.java @@ -185,8 +185,10 @@ public class QueryUtil { private static void applyProperties(ItemQuery query) { query.setUserId(App.getApiClient().getCurrentUserId()); - if (query.getParentId() == null && query.getArtistIds().length == 0) query.setLimit(100); query.setRecursive(true); + if (query.getParentId() == null && query.getArtistIds().length == 0) { + query.setLimit(PreferenceUtil.getInstance(App.getInstance()).getMaximumListSize()); + } if (currentLibrary == null || query.getParentId() != null) return; if (query.getArtistIds().length == 0) query.setParentId(currentLibrary.getId()); @@ -194,8 +196,10 @@ public class QueryUtil { private static void applyProperties(ItemsByNameQuery query) { query.setUserId(App.getApiClient().getCurrentUserId()); - if (query.getParentId() == null) query.setLimit(100); query.setRecursive(true); + if (query.getParentId() == null) { + query.setLimit(PreferenceUtil.getInstance(App.getInstance()).getMaximumListSize()); + } if (currentLibrary == null || query.getParentId() != null) return; query.setParentId(currentLibrary.getId()); diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 1f546ee8..09e7738e 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -35,4 +35,21 @@ 256000 128000 + + + @string/unlimited + 1000 + 400 + 200 + 100 + + + + 10000000 + 1000 + 400 + 200 + 100 + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c6390f08..ec4ed028 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -115,6 +115,7 @@ Remember Tab Remember Shuffle Remember Queue + Maximum List Size The primary theme color for control elements. An alternate color used to accent elements. Uses the current song\'s album cover as the lockscreen wallpaper. diff --git a/app/src/main/res/xml/pref_library.xml b/app/src/main/res/xml/pref_library.xml index 38bb7c39..f8a75612 100644 --- a/app/src/main/res/xml/pref_library.xml +++ b/app/src/main/res/xml/pref_library.xml @@ -9,6 +9,16 @@ android:summary="@string/pref_summary_library_categories" android:title="@string/library_categories" /> + +