From cc531698e5baff412141997e307e6631a2c02d7e Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 16 Sep 2017 22:48:01 +0200 Subject: [PATCH] Use new subsonic api getSearch2 call. Signed-off-by: Yahor Berdnikau --- .../ultrasonic/service/RESTMusicService.java | 25 +++--- .../service/parser/SearchResult2Parser.java | 89 ------------------- 2 files changed, 10 insertions(+), 104 deletions(-) delete mode 100644 ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/SearchResult2Parser.java diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java index e31c0b81..803eeed2 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java @@ -71,6 +71,7 @@ import org.moire.ultrasonic.api.subsonic.response.GetPlaylistsResponse; import org.moire.ultrasonic.api.subsonic.response.GetPodcastsResponse; import org.moire.ultrasonic.api.subsonic.response.GetRandomSongsResponse; import org.moire.ultrasonic.api.subsonic.response.GetStarredResponse; +import org.moire.ultrasonic.api.subsonic.response.GetStarredTwoResponse; import org.moire.ultrasonic.api.subsonic.response.LicenseResponse; import org.moire.ultrasonic.api.subsonic.response.MusicFoldersResponse; import org.moire.ultrasonic.api.subsonic.response.SearchResponse; @@ -108,7 +109,6 @@ import org.moire.ultrasonic.service.parser.GenreParser; import org.moire.ultrasonic.service.parser.JukeboxStatusParser; import org.moire.ultrasonic.service.parser.MusicDirectoryParser; import org.moire.ultrasonic.service.parser.RandomSongsParser; -import org.moire.ultrasonic.service.parser.SearchResult2Parser; import org.moire.ultrasonic.service.parser.ShareParser; import org.moire.ultrasonic.service.parser.UserInfoParser; import org.moire.ultrasonic.service.ssl.SSLSocketFactory; @@ -726,21 +726,16 @@ public class RESTMusicService implements MusicService return APISearchConverter.toDomainEntity(response.body().getStarred()); } - @Override - public SearchResult getStarred2(Context context, ProgressListener progressListener) throws Exception - { - checkServerVersion(context, "1.8", "Starred albums by ID3 tag not supported."); + @Override + public SearchResult getStarred2(Context context, + ProgressListener progressListener) throws Exception { + updateProgressListener(progressListener, R.string.parser_reading); + Response response = subsonicAPIClient.getApi() + .getStarred2(null).execute(); + checkResponseSuccessful(response); - Reader reader = getReader(context, progressListener, "getStarred2", null); - try - { - return new SearchResult2Parser(context).parse(reader, progressListener, true); - } - finally - { - Util.close(reader); - } - } + return APISearchConverter.toDomainEntity(response.body().getStarred2()); + } private static void checkServerVersion(Context context, String version, String text) throws ServerTooOldException { diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/SearchResult2Parser.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/SearchResult2Parser.java deleted file mode 100644 index f85f3eee..00000000 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/SearchResult2Parser.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - This file is part of Subsonic. - - Subsonic is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Subsonic is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . - - Copyright 2009 (C) Sindre Mehus - */ -package org.moire.ultrasonic.service.parser; - -import android.content.Context; - -import org.moire.ultrasonic.R; -import org.moire.ultrasonic.domain.MusicDirectory; -import org.moire.ultrasonic.domain.SearchResult; -import org.moire.ultrasonic.domain.Artist; -import org.moire.ultrasonic.util.ProgressListener; - -import org.xmlpull.v1.XmlPullParser; - -import java.io.Reader; -import java.util.List; -import java.util.ArrayList; - -/** - * @author Sindre Mehus - */ -public class SearchResult2Parser extends MusicDirectoryEntryParser -{ - - public SearchResult2Parser(Context context) - { - super(context); - } - - public SearchResult parse(Reader reader, ProgressListener progressListener, boolean useId3) throws Exception - { - updateProgress(progressListener, R.string.parser_reading); - init(reader); - - List artists = new ArrayList(); - List albums = new ArrayList(); - List songs = new ArrayList(); - int eventType; - do - { - eventType = nextParseEvent(); - if (eventType == XmlPullParser.START_TAG) - { - String name = getElementName(); - if ("artist".equals(name)) - { - Artist artist = new Artist(); - artist.setId(get("id")); - artist.setName(get("name")); - artists.add(artist); - } - else if ("album".equals(name)) - { - albums.add(parseEntry("", useId3, 0)); - } - else if ("song".equals(name)) - { - songs.add(parseEntry("", false, 0)); - } - else if ("error".equals(name)) - { - handleError(); - } - } - } while (eventType != XmlPullParser.END_DOCUMENT); - - validate(); - updateProgress(progressListener, R.string.parser_reading_done); - - return new SearchResult(artists, albums, songs); - } - -} \ No newline at end of file