From b4ef434c0879c681359f538b7b492580fafb2ae5 Mon Sep 17 00:00:00 2001 From: Allen Petersen Date: Sat, 9 Dec 2017 23:12:16 -0500 Subject: [PATCH] Issue 617 Removes an incorrect override in AlbumUpnpProcessor which was preventing RecentAlbumUpnpProcessor from behaving correctly. Also adds a correct getAllItemsSize() implementation for RecentAlbumUpnpProcessor. --- .../player/service/upnp/AlbumUpnpProcessor.java | 16 ---------------- .../service/upnp/RecentAlbumUpnpProcessor.java | 8 ++++++++ 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/upnp/AlbumUpnpProcessor.java b/airsonic-main/src/main/java/org/airsonic/player/service/upnp/AlbumUpnpProcessor.java index 9b28a437..b9c4e98b 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/upnp/AlbumUpnpProcessor.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/upnp/AlbumUpnpProcessor.java @@ -26,10 +26,8 @@ import org.airsonic.player.domain.CoverArtScheme; import org.airsonic.player.domain.MediaFile; import org.airsonic.player.domain.MusicFolder; import org.airsonic.player.service.SearchService; -import org.fourthline.cling.support.model.BrowseResult; import org.fourthline.cling.support.model.DIDLContent; import org.fourthline.cling.support.model.PersonWithRole; -import org.fourthline.cling.support.model.SortCriterion; import org.fourthline.cling.support.model.container.Container; import org.fourthline.cling.support.model.container.MusicAlbum; import org.springframework.beans.factory.annotation.Autowired; @@ -61,20 +59,6 @@ public class AlbumUpnpProcessor extends UpnpContentProcessor setRootTitle("Albums"); } - /** - * Browses the top-level content of a type. - */ - public BrowseResult browseRoot(String filter, long firstResult, long maxResults, SortCriterion[] orderBy) throws Exception { - DIDLContent didl = new DIDLContent(); - - List allFolders = getDispatchingContentDirectory().getSettingsService().getAllMusicFolders(); - List selectedItems = getAlbumDao().getAlphabeticalAlbums((int) firstResult, (int) maxResults, false, true, allFolders); - for (Album item : selectedItems) { - addItem(didl, item); - } - - return createBrowseResult(didl, (int) didl.getCount(), getAllItemsSize()); - } public Container createContainer(Album album) throws Exception { MusicAlbum container = new MusicAlbum(); diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/upnp/RecentAlbumUpnpProcessor.java b/airsonic-main/src/main/java/org/airsonic/player/service/upnp/RecentAlbumUpnpProcessor.java index 32023cc6..22707229 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/upnp/RecentAlbumUpnpProcessor.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/upnp/RecentAlbumUpnpProcessor.java @@ -37,6 +37,7 @@ public class RecentAlbumUpnpProcessor extends AlbumUpnpProcessor { setRootTitle("RecentAlbums"); } + @Override public List getAllItems() { List allFolders = getDispatchingContentDirectory().getSettingsService().getAllMusicFolders(); List recentAlbums = getAlbumDao().getNewestAlbums(0, RECENT_COUNT, allFolders); @@ -51,4 +52,11 @@ public class RecentAlbumUpnpProcessor extends AlbumUpnpProcessor { } return recentAlbums; } + + @Override + public int getAllItemsSize() throws Exception { + List allFolders = getDispatchingContentDirectory().getSettingsService().getAllMusicFolders(); + int allAlbumCount = getAlbumDao().getAlbumCount(allFolders); + return Math.min(allAlbumCount, RECENT_COUNT); + } }