diff --git a/app/src/main/java/net/nullsum/audinaut/service/RESTMusicService.java b/app/src/main/java/net/nullsum/audinaut/service/RESTMusicService.java index 7a706f5..8ed0907 100644 --- a/app/src/main/java/net/nullsum/audinaut/service/RESTMusicService.java +++ b/app/src/main/java/net/nullsum/audinaut/service/RESTMusicService.java @@ -21,6 +21,7 @@ package net.nullsum.audinaut.service; import android.content.Context; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.support.annotation.Nullable; import android.util.Log; import net.nullsum.audinaut.domain.Genre; @@ -55,6 +56,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; import okhttp3.FormBody; @@ -75,7 +77,7 @@ public class RESTMusicService implements MusicService { @Override public void ping(Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "ping"); + String url = getRestUrl(context, "ping", null); Request request = new Request.Builder() .url(url) @@ -87,7 +89,7 @@ public class RESTMusicService implements MusicService { } public List getMusicFolders(boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getMusicFolders"); + String url = getRestUrl(context, "getMusicFolders", null); Request request = new Request.Builder() .url(url) @@ -100,7 +102,7 @@ public class RESTMusicService implements MusicService { @Override public Indexes getIndexes(String musicFolderId, boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getArtists"); + String url = getRestUrl(context, "getArtists", null); Builder builder = new FormBody.Builder(); @@ -158,7 +160,7 @@ public class RESTMusicService implements MusicService { } private MusicDirectory getMusicDirectoryImpl(String id, String name, Context context) throws Exception { - String url = getRestUrl(context, "getMusicDirectory"); + String url = getRestUrl(context, "getMusicDirectory", null); RequestBody formBody = new FormBody.Builder() .add("id", id) @@ -176,7 +178,7 @@ public class RESTMusicService implements MusicService { @Override public MusicDirectory getArtist(String id, String name, boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getArtist"); + String url = getRestUrl(context, "getArtist", null); RequestBody formBody = new FormBody.Builder() .add("id", id) @@ -194,7 +196,7 @@ public class RESTMusicService implements MusicService { @Override public MusicDirectory getAlbum(String id, String name, boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getAlbum"); + String url = getRestUrl(context, "getAlbum", null); RequestBody formBody = new FormBody.Builder() .add("id", id) @@ -212,7 +214,7 @@ public class RESTMusicService implements MusicService { @Override public SearchResult search(SearchCritera critera, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "search3"); + String url = getRestUrl(context, "search3", null); Builder builder = new FormBody.Builder(); @@ -235,7 +237,7 @@ public class RESTMusicService implements MusicService { @Override public MusicDirectory getPlaylist(boolean refresh, String id, String name, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getPlaylist"); + String url = getRestUrl(context, "getPlaylist", null); RequestBody formBody = new FormBody.Builder() .add("id", id) @@ -253,7 +255,7 @@ public class RESTMusicService implements MusicService { @Override public List getPlaylists(boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getPlaylists"); + String url = getRestUrl(context, "getPlaylists", null); Request request = new Request.Builder() .url(url) @@ -266,7 +268,7 @@ public class RESTMusicService implements MusicService { @Override public void createPlaylist(String id, String name, List entries, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "createPlaylist"); + String url = getRestUrl(context, "createPlaylist", null); Builder builder = new FormBody.Builder(); @@ -296,7 +298,7 @@ public class RESTMusicService implements MusicService { @Override public void deletePlaylist(String id, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "deletePlaylist"); + String url = getRestUrl(context, "deletePlaylist", null); RequestBody formBody = new FormBody.Builder() .add("id", id) @@ -314,7 +316,7 @@ public class RESTMusicService implements MusicService { @Override public void addToPlaylist(String id, List toAdd, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "updatePlaylist"); + String url = getRestUrl(context, "updatePlaylist", null); Builder builder = new FormBody.Builder(); builder.add("playlistId", id); @@ -336,7 +338,7 @@ public class RESTMusicService implements MusicService { @Override public void removeFromPlaylist(String id, List toRemove, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "updatePlaylist"); + String url = getRestUrl(context, "updatePlaylist", null); Builder builder = new FormBody.Builder(); builder.add("playlistId", id); @@ -359,7 +361,7 @@ public class RESTMusicService implements MusicService { @Override public void overwritePlaylist(String id, String name, int toRemove, List toAdd, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "updatePlaylist"); + String url = getRestUrl(context, "updatePlaylist", null); Builder builder = new FormBody.Builder(); builder.add("playlistId", id); @@ -387,7 +389,7 @@ public class RESTMusicService implements MusicService { @Override public void updatePlaylist(String id, String name, String comment, boolean pub, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "updatePlaylist"); + String url = getRestUrl(context, "updatePlaylist", null); Builder builder = new FormBody.Builder(); builder.add("playlistId", id); @@ -409,7 +411,7 @@ public class RESTMusicService implements MusicService { @Override public MusicDirectory getAlbumList(String type, int size, int offset, boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getAlbumList2"); + String url = getRestUrl(context, "getAlbumList2", null); Builder builder = new FormBody.Builder(); builder.add("type", type); @@ -439,7 +441,7 @@ public class RESTMusicService implements MusicService { @Override public MusicDirectory getAlbumList(String type, String extra, int size, int offset, boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getAlbumList2"); + String url = getRestUrl(context, "getAlbumList2", null); Builder builder = new FormBody.Builder(); builder.add("size", Integer.toString(size)); @@ -501,7 +503,7 @@ public class RESTMusicService implements MusicService { method = "getNewaddedSongs"; } - String url = getRestUrl(context, method); + String url = getRestUrl(context, method, null); RequestBody formBody = builder.build(); @@ -546,7 +548,7 @@ public class RESTMusicService implements MusicService { builder.add("toYear", endYear); } - String url = getRestUrl(context, "getRandomSongs"); + String url = getRestUrl(context, "getRandomSongs", null); RequestBody formBody = builder.build(); @@ -572,7 +574,7 @@ public class RESTMusicService implements MusicService { return bitmap; } - String url = getRestUrl(context, "getCoverArt"); + String url = getRestUrl(context, "getCoverArt", null); Builder builder = new FormBody.Builder(); builder.add("id", entry.getCoverArt()); @@ -619,7 +621,7 @@ public class RESTMusicService implements MusicService { .readTimeout(30, TimeUnit.SECONDS) .build(); - String url = getRestUrl(context, "stream"); + String url = getRestUrl(context, "stream", null); Builder builder = new FormBody.Builder(); builder.add("id", song.getId()); @@ -643,7 +645,7 @@ public class RESTMusicService implements MusicService { @Override public List getGenres(boolean refresh, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getGenres"); + String url = getRestUrl(context, "getGenres", null); Request request = new Request.Builder() .url(url) @@ -670,7 +672,7 @@ public class RESTMusicService implements MusicService { } } - String url = getRestUrl(context, "getSongsByGenre"); + String url = getRestUrl(context, "getSongsByGenre", null); RequestBody formBody = builder.build(); @@ -686,7 +688,7 @@ public class RESTMusicService implements MusicService { @Override public User getUser(boolean refresh, String username, Context context, ProgressListener progressListener) throws Exception { - String url = getRestUrl(context, "getUser"); + String url = getRestUrl(context, "getUser", null); RequestBody formBody = new FormBody.Builder() .add("username", username) @@ -742,15 +744,15 @@ public class RESTMusicService implements MusicService { } - public String getRestUrl(Context context, String method) { - return getRestUrl(context, method, true); + public String getRestUrl(Context context, String method, @Nullable Map parameters) { + return getRestUrl(context, method, true, parameters); } - public String getRestUrl(Context context, String method, boolean allowAltAddress) { + public String getRestUrl(Context context, String method, boolean allowAltAddress, @Nullable Map parameters) { if (instance == null) { - return Util.getRestUrl(context, method, allowAltAddress); + return Util.getRestUrl(context, method, allowAltAddress, parameters); } else { - return Util.getRestUrl(context, method, instance, allowAltAddress); + return Util.getRestUrl(context, method, instance, allowAltAddress, parameters); } } } diff --git a/app/src/main/java/net/nullsum/audinaut/util/Util.java b/app/src/main/java/net/nullsum/audinaut/util/Util.java index 0e46568..b464401 100644 --- a/app/src/main/java/net/nullsum/audinaut/util/Util.java +++ b/app/src/main/java/net/nullsum/audinaut/util/Util.java @@ -36,6 +36,7 @@ import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.os.Build; import android.os.Environment; +import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; import android.text.SpannableString; @@ -70,6 +71,7 @@ import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Random; import okhttp3.HttpUrl; @@ -277,21 +279,22 @@ public final class Util { } public static String getRestUrl(Context context) { - return getRestUrl(context, null, true); + return getRestUrl(context, null, true, null); } - public static String getRestUrl(Context context, String method, boolean allowAltAddress) { + // used + public static String getRestUrl(Context context, String method, boolean allowAltAddress, @Nullable Map parameters) { SharedPreferences prefs = getPreferences(context); int instance = prefs.getInt(Constants.PREFERENCES_KEY_SERVER_INSTANCE, 1); - return getRestUrl(context, method, prefs, instance, allowAltAddress); + return getRestUrl(context, method, prefs, instance, allowAltAddress, parameters); } - public static String getRestUrl(Context context, String method, int instance, boolean allowAltAddress) { + public static String getRestUrl(Context context, String method, int instance, boolean allowAltAddress, @Nullable Map parameters) { SharedPreferences prefs = getPreferences(context); - return getRestUrl(context, method, prefs, instance, allowAltAddress); + return getRestUrl(context, method, prefs, instance, allowAltAddress, parameters); } - private static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance, boolean allowAltAddress) { + private static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance, boolean allowAltAddress, @Nullable Map parameters) { String serverUrl = prefs.getString(Constants.PREFERENCES_KEY_SERVER_URL + instance, null); HttpUrl.Builder builder; @@ -334,6 +337,12 @@ public final class Util { builder.addQueryParameter("v", Constants.REST_PROTOCOL_VERSION_SUBSONIC); builder.addQueryParameter("c", Constants.REST_CLIENT_ID); + if (parameters != null) { + for (Map.Entry parameter : parameters.entrySet()) { + builder.addQueryParameter(parameter.getKey(), parameter.getValue()); + } + } + return builder.build().toString(); } @@ -352,7 +361,7 @@ public final class Util { } private static String getBlockTokenUsePref(Context context, int instance) { - return Constants.CACHE_BLOCK_TOKEN_USE + Util.getRestUrl(context, null, instance, false); + return Constants.CACHE_BLOCK_TOKEN_USE + Util.getRestUrl(context, null, instance, false, null); } public static void setBlockTokenUse(Context context, int instance) { @@ -366,7 +375,7 @@ public final class Util { } public static String getCacheName(Context context, String name, String id) { - String s = getRestUrl(context, null, getActiveServer(context), false) + id; + String s = getRestUrl(context, null, getActiveServer(context), false, null) + id; return name + "-" + s.hashCode() + ".ser"; }