From cfb8575b4db6692dac6248bab46bdbc2ffe15ef1 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Sat, 5 Feb 2022 23:30:12 +0100 Subject: [PATCH] Reformulated the logic of construction of the media URI --- .../cappielloantonio/play/util/MusicUtil.java | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java index 8b010f74..cfb186e2 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MusicUtil.java @@ -27,42 +27,50 @@ public class MusicUtil { Map params = App.getSubsonicClientInstance(App.getInstance(), false).getParams(); - String uri = App.getSubsonicClientInstance(App.getInstance(), false).getUrl() + - "stream" + - "?u=" + params.get("u") + - "&s=" + params.get("s") + - "&t=" + params.get("t") + - "&v=" + params.get("v") + - "&c=" + params.get("c") + - "&id=" + id; + StringBuilder uri = new StringBuilder(); + + uri.append(App.getSubsonicClientInstance(App.getInstance(), false).getUrl()); + uri.append("stream"); + + if(params.containsKey("u") && params.get("u") != null) uri.append("?u=").append(params.get("u")); + if(params.containsKey("p") && params.get("p") != null) uri.append("&p=").append(params.get("p")); + if(params.containsKey("s") && params.get("s") != null) uri.append("&s=").append(params.get("s")); + if(params.containsKey("t") && params.get("t") != null) uri.append("&t=").append(params.get("t")); + if(params.containsKey("v") && params.get("v") != null) uri.append("&v=").append(params.get("v")); + if(params.containsKey("c") && params.get("c") != null) uri.append("&c=").append(params.get("c")); + uri.append("&id=").append(id); if (connectivityManager.getActiveNetworkInfo() != null) { - uri = uri + "&maxBitRate=" - + getBitratePreference(context, connectivityManager.getActiveNetworkInfo().getType()) + "&format=" - + getTranscodingFormatPreference(context, connectivityManager.getActiveNetworkInfo().getType()); + uri.append("&maxBitRate=") + .append(getBitratePreference(context, connectivityManager.getActiveNetworkInfo().getType())) + .append("&format=").append(getTranscodingFormatPreference(context, connectivityManager.getActiveNetworkInfo().getType())); } - Log.d(TAG, "getSongStreamUri(): " + uri); + Log.d(TAG, "getStreamUri(): " + uri); - return Uri.parse(uri); + return Uri.parse(uri.toString()); } @SuppressLint("UnsafeOptInUsageError") public static Uri getDownloadUri(String id) { Map params = App.getSubsonicClientInstance(App.getInstance(), false).getParams(); - String uri = App.getSubsonicClientInstance(App.getInstance(), false).getUrl() + - "stream" + - "?u=" + params.get("u") + - "&s=" + params.get("s") + - "&t=" + params.get("t") + - "&v=" + params.get("v") + - "&c=" + params.get("c") + - "&id=" + id; + StringBuilder uri = new StringBuilder(); - Log.d(TAG, "getSongDownloadUri(): " + uri); + uri.append(App.getSubsonicClientInstance(App.getInstance(), false).getUrl()); + uri.append("stream"); - return Uri.parse(uri); + if(params.containsKey("u") && params.get("u") != null) uri.append("?u=").append(params.get("u")); + if(params.containsKey("p") && params.get("p") != null) uri.append("&p=").append(params.get("p")); + if(params.containsKey("s") && params.get("s") != null) uri.append("&s=").append(params.get("s")); + if(params.containsKey("t") && params.get("t") != null) uri.append("&t=").append(params.get("t")); + if(params.containsKey("v") && params.get("v") != null) uri.append("&v=").append(params.get("v")); + if(params.containsKey("c") && params.get("c") != null) uri.append("&c=").append(params.get("c")); + uri.append("&id=").append(id); + + Log.d(TAG, "getDownloadUri(): " + uri); + + return Uri.parse(uri.toString()); } public static String getReadableDurationString(long duration, boolean millis) {