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" />
+
+