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 e471bfde..26944926 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java @@ -62,6 +62,7 @@ import org.moire.ultrasonic.api.subsonic.response.GetArtistsResponse; import org.moire.ultrasonic.api.subsonic.response.GetIndexesResponse; import org.moire.ultrasonic.api.subsonic.response.GetMusicDirectoryResponse; import org.moire.ultrasonic.api.subsonic.response.GetPlaylistResponse; +import org.moire.ultrasonic.api.subsonic.response.GetPlaylistsResponse; import org.moire.ultrasonic.api.subsonic.response.LicenseResponse; import org.moire.ultrasonic.api.subsonic.response.MusicFoldersResponse; import org.moire.ultrasonic.api.subsonic.response.SearchResponse; @@ -92,7 +93,6 @@ import org.moire.ultrasonic.service.parser.GenreParser; import org.moire.ultrasonic.service.parser.JukeboxStatusParser; import org.moire.ultrasonic.service.parser.LyricsParser; import org.moire.ultrasonic.service.parser.MusicDirectoryParser; -import org.moire.ultrasonic.service.parser.PlaylistsParser; import org.moire.ultrasonic.service.parser.PodcastEpisodeParser; import org.moire.ultrasonic.service.parser.PodcastsChannelsParser; import org.moire.ultrasonic.service.parser.RandomSongsParser; @@ -554,21 +554,17 @@ public class RESTMusicService implements MusicService } } + @Override + public List getPlaylists(boolean refresh, + Context context, + ProgressListener progressListener) throws Exception { + updateProgressListener(progressListener, R.string.parser_reading); + Response response = subsonicAPIClient.getApi() + .getPlaylists(null).execute(); + checkResponseSuccessful(response); - - @Override - public List getPlaylists(boolean refresh, Context context, ProgressListener progressListener) throws Exception - { - Reader reader = getReader(context, progressListener, "getPlaylists", null); - try - { - return new PlaylistsParser(context).parse(reader, progressListener); - } - finally - { - Util.close(reader); - } - } + return APIConverter.toDomainEntitiesList(response.body().getPlaylists()); + } @Override public void createPlaylist(String id, String name, List entries, Context context, ProgressListener progressListener) throws Exception diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/PlaylistsParser.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/PlaylistsParser.java deleted file mode 100644 index 9362dd7e..00000000 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/parser/PlaylistsParser.java +++ /dev/null @@ -1,83 +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.Playlist; -import org.moire.ultrasonic.util.ProgressListener; -import org.moire.ultrasonic.view.PlaylistAdapter; - -import org.xmlpull.v1.XmlPullParser; - -import java.io.Reader; -import java.util.ArrayList; -import java.util.List; - -/** - * @author Sindre Mehus - */ -public class PlaylistsParser extends AbstractParser -{ - - public PlaylistsParser(Context context) - { - super(context); - } - - public List parse(Reader reader, ProgressListener progressListener) throws Exception - { - - updateProgress(progressListener, R.string.parser_reading); - init(reader); - - List result = new ArrayList(); - int eventType; - do - { - eventType = nextParseEvent(); - if (eventType == XmlPullParser.START_TAG) - { - String tag = getElementName(); - if ("playlist".equals(tag)) - { - String id = get("id"); - String name = get("name"); - String owner = get("owner"); - String comment = get("comment"); - String songCount = get("songCount"); - String created = get("created"); - String pub = get("public"); - result.add(new Playlist(id, name, owner, comment, songCount, created, pub)); - } - else if ("error".equals(tag)) - { - handleError(); - } - } - } while (eventType != XmlPullParser.END_DOCUMENT); - - validate(); - updateProgress(progressListener, R.string.parser_reading_done); - - return PlaylistAdapter.PlaylistComparator.sort(result); - } - -} \ No newline at end of file