fix some issues with query utilities
This commit is contained in:
parent
e787e4374a
commit
45d4cb84b0
1 changed files with 23 additions and 20 deletions
|
|
@ -48,10 +48,7 @@ public class QueryUtil {
|
||||||
public static void getPlaylists(MediaCallback callback) {
|
public static void getPlaylists(MediaCallback callback) {
|
||||||
ItemQuery query = new ItemQuery();
|
ItemQuery query = new ItemQuery();
|
||||||
query.setIncludeItemTypes(new String[]{"Playlist"});
|
query.setIncludeItemTypes(new String[]{"Playlist"});
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
applyProperties(query);
|
||||||
query.setLimit(100);
|
|
||||||
query.setRecursive(true);
|
|
||||||
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
|
||||||
public void onResponse(ItemsResult result) {
|
public void onResponse(ItemsResult result) {
|
||||||
|
|
@ -72,10 +69,7 @@ public class QueryUtil {
|
||||||
|
|
||||||
public static void getGenres(MediaCallback callback) {
|
public static void getGenres(MediaCallback callback) {
|
||||||
ItemsByNameQuery query = new ItemsByNameQuery();
|
ItemsByNameQuery query = new ItemsByNameQuery();
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
applyProperties(query);
|
||||||
query.setLimit(100);
|
|
||||||
query.setRecursive(true);
|
|
||||||
if (currentLibrary != null && query.getParentId() == null) query.setParentId(currentLibrary.getId());
|
|
||||||
App.getApiClient().GetGenresAsync(query, new Response<ItemsResult>() {
|
App.getApiClient().GetGenresAsync(query, new Response<ItemsResult>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(ItemsResult result) {
|
public void onResponse(ItemsResult result) {
|
||||||
|
|
@ -125,11 +119,8 @@ public class QueryUtil {
|
||||||
|
|
||||||
public static void getAlbums(ItemQuery query, MediaCallback callback) {
|
public static void getAlbums(ItemQuery query, MediaCallback callback) {
|
||||||
query.setIncludeItemTypes(new String[]{"MusicAlbum"});
|
query.setIncludeItemTypes(new String[]{"MusicAlbum"});
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
applyProperties(query);
|
||||||
query.setLimit(100);
|
|
||||||
query.setRecursive(true);
|
|
||||||
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
|
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getAlbumSortMethod());
|
||||||
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
|
||||||
public void onResponse(ItemsResult result) {
|
public void onResponse(ItemsResult result) {
|
||||||
|
|
@ -151,10 +142,7 @@ public class QueryUtil {
|
||||||
public static void getArtists(MediaCallback callback) {
|
public static void getArtists(MediaCallback callback) {
|
||||||
ArtistsQuery query = new ArtistsQuery();
|
ArtistsQuery query = new ArtistsQuery();
|
||||||
query.setFields(new ItemFields[]{ItemFields.Genres});
|
query.setFields(new ItemFields[]{ItemFields.Genres});
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
applyProperties(query);
|
||||||
query.setLimit(100);
|
|
||||||
query.setRecursive(true);
|
|
||||||
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
|
||||||
public void onResponse(ItemsResult result) {
|
public void onResponse(ItemsResult result) {
|
||||||
|
|
@ -175,11 +163,8 @@ public class QueryUtil {
|
||||||
|
|
||||||
public static void getSongs(ItemQuery query, MediaCallback callback) {
|
public static void getSongs(ItemQuery query, MediaCallback callback) {
|
||||||
query.setIncludeItemTypes(new String[]{"Audio"});
|
query.setIncludeItemTypes(new String[]{"Audio"});
|
||||||
query.setUserId(App.getApiClient().getCurrentUserId());
|
applyProperties(query);
|
||||||
query.setLimit(100);
|
|
||||||
query.setRecursive(true);
|
|
||||||
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
||||||
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
|
||||||
public void onResponse(ItemsResult result) {
|
public void onResponse(ItemsResult result) {
|
||||||
|
|
@ -198,6 +183,24 @@ 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 (currentLibrary == null || query.getParentId() != null) return;
|
||||||
|
if (query.getArtistIds().length == 0) query.setParentId(currentLibrary.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void applyProperties(ItemsByNameQuery query) {
|
||||||
|
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||||
|
if (query.getParentId() == null) query.setLimit(100);
|
||||||
|
query.setRecursive(true);
|
||||||
|
|
||||||
|
if (currentLibrary == null || query.getParentId() != null) return;
|
||||||
|
query.setParentId(currentLibrary.getId());
|
||||||
|
}
|
||||||
|
|
||||||
private static void applySortMethod(ItemQuery query, String method) {
|
private static void applySortMethod(ItemQuery query, String method) {
|
||||||
// album activity will always sort by track number
|
// album activity will always sort by track number
|
||||||
if (query.getSortBy().length != 0) return;
|
if (query.getSortBy().length != 0) return;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue