From 2d8d98696c25f30402823ec9d1218ca98aaa8905 Mon Sep 17 00:00:00 2001
From: Yahor Berdnikau <egorr.berd@gmail.com>
Date: Mon, 21 Aug 2017 21:29:09 +0200
Subject: [PATCH] Use new getAlbum() subsonic api call.

Signed-off-by: Yahor Berdnikau <egorr.berd@gmail.com>
---
 .../ultrasonic/service/RESTMusicService.java  | 31 ++++++++++---------
 1 file changed, 17 insertions(+), 14 deletions(-)

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 d86542fe..f818fe6d 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java
@@ -56,6 +56,7 @@ import org.apache.http.protocol.ExecutionContext;
 import org.apache.http.protocol.HttpContext;
 import org.moire.ultrasonic.R;
 import org.moire.ultrasonic.api.subsonic.SubsonicAPIClient;
+import org.moire.ultrasonic.api.subsonic.response.GetAlbumResponse;
 import org.moire.ultrasonic.api.subsonic.response.GetArtistResponse;
 import org.moire.ultrasonic.api.subsonic.response.GetArtistsResponse;
 import org.moire.ultrasonic.api.subsonic.response.GetIndexesResponse;
@@ -388,21 +389,23 @@ public class RESTMusicService implements MusicService
         return APIConverter.toMusicDirectoryDomainEntity(response.body().getArtist());
     }
 
-	@Override
-	public MusicDirectory getAlbum(String id, String name, boolean refresh, Context context, ProgressListener progressListener) throws Exception
-	{
-		checkServerVersion(context, "1.8", "Album by ID3 tag not supported.");
+    @Override
+    public MusicDirectory getAlbum(String id,
+                                   String name,
+                                   boolean refresh,
+                                   Context context,
+                                   ProgressListener progressListener) throws Exception {
+        if (id == null) {
+            throw new IllegalArgumentException("Id argument is null!");
+        }
 
-		Reader reader = getReader(context, progressListener, "getAlbum", null, "id", id);
-		try
-		{
-			return new MusicDirectoryParser(context).parse(name, reader, progressListener, true);
-		}
-		finally
-		{
-			Util.close(reader);
-		}
-	}
+        updateProgressListener(progressListener, R.string.parser_reading);
+        Response<GetAlbumResponse> response = subsonicAPIClient.getApi()
+                .getAlbum(Long.valueOf(id)).execute();
+        checkResponseSuccessful(response);
+
+        return APIConverter.toMusicDirectoryDomainEntity(response.body().getAlbum());
+    }
 
 	@Override
 	public SearchResult search(SearchCriteria criteria, Context context, ProgressListener progressListener) throws Exception