From 69066eaf70cffc2d66bb6bede610e1e42251e42e Mon Sep 17 00:00:00 2001 From: Eugene Popovich Date: Wed, 9 Oct 2013 10:19:33 +0300 Subject: [PATCH] Card 18 (Add parameter skipEmpty=1 in the album/list.json to not return empty albums) - ITroveboxApi: added additional parameters skipEmpty to getAlbums method declaration - TroveboxApi: added skipEmpty parameter support to the getAlbums method implementation - AlbumsEndlessAdapter: added additional required parameter to the mTroveboxApi.getAlbums call to skip empty albums --- app/src/com/trovebox/android/app/net/ITroveboxApi.java | 4 ++-- app/src/com/trovebox/android/app/net/TroveboxApi.java | 8 ++++++-- .../android/app/ui/adapter/AlbumsEndlessAdapter.java | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/com/trovebox/android/app/net/ITroveboxApi.java b/app/src/com/trovebox/android/app/net/ITroveboxApi.java index c725885..96734a7 100644 --- a/app/src/com/trovebox/android/app/net/ITroveboxApi.java +++ b/app/src/com/trovebox/android/app/net/ITroveboxApi.java @@ -37,15 +37,15 @@ AlbumsResponse getAlbums() throws ClientProtocolException, IOException, /** * Get albums. * - * @param resize which sizes should be returned * @param paging paging information + * @param skipEmpty whether to do not return empty albums * @return albums which are used on the server * @throws ClientProtocolException * @throws IOException * @throws IllegalStateException * @throws JSONException */ - AlbumsResponse getAlbums(Paging paging) + AlbumsResponse getAlbums(Paging paging, boolean skipEmpty) throws ClientProtocolException, IllegalStateException, IOException, JSONException; diff --git a/app/src/com/trovebox/android/app/net/TroveboxApi.java b/app/src/com/trovebox/android/app/net/TroveboxApi.java index 526f947..9e16965 100644 --- a/app/src/com/trovebox/android/app/net/TroveboxApi.java +++ b/app/src/com/trovebox/android/app/net/TroveboxApi.java @@ -50,16 +50,20 @@ public AlbumsResponse getAlbums() throws ClientProtocolException, IOException, IllegalStateException, JSONException { - return getAlbums(null); + return getAlbums(null, true); } @Override - public AlbumsResponse getAlbums(Paging paging) throws ClientProtocolException, + public AlbumsResponse getAlbums(Paging paging, boolean skipEmpty) + throws ClientProtocolException, IOException, IllegalStateException, JSONException { ApiRequest request = new ApiRequest(ApiRequest.GET, "/albums/list.json"); addPagingRestrictions(paging, request); + if (skipEmpty) { + request.addParameter("skipEmpty", "1"); + } ApiResponse response = execute(request); return new AlbumsResponse(response.getJSONObject()); } diff --git a/app/src/com/trovebox/android/app/ui/adapter/AlbumsEndlessAdapter.java b/app/src/com/trovebox/android/app/ui/adapter/AlbumsEndlessAdapter.java index 0bf96d5..3b6534e 100644 --- a/app/src/com/trovebox/android/app/ui/adapter/AlbumsEndlessAdapter.java +++ b/app/src/com/trovebox/android/app/ui/adapter/AlbumsEndlessAdapter.java @@ -48,8 +48,8 @@ public LoadResponse loadItems(int page) { try { - AlbumsResponse response = mTroveboxApi.getAlbums(new Paging(page, - getPageSize())); + AlbumsResponse response = mTroveboxApi.getAlbums(new Paging(page, getPageSize()), + true); if (TroveboxResponseUtils.checkResponseValid(response)) { return new LoadResponse(response.getAlbums(), response.hasNextPage());