diff --git a/app/src/main/java/com/cappielloantonio/tempo/glide/CustomGlideRequest.java b/app/src/main/java/com/cappielloantonio/tempo/glide/CustomGlideRequest.java index e84ba913..60596afd 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/glide/CustomGlideRequest.java +++ b/app/src/main/java/com/cappielloantonio/tempo/glide/CustomGlideRequest.java @@ -16,6 +16,7 @@ import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.signature.ObjectKey; import com.cappielloantonio.tempo.App; import com.cappielloantonio.tempo.util.Preferences; +import com.cappielloantonio.tempo.util.Util; import com.google.android.material.elevation.SurfaceColors; import java.util.Map; @@ -46,7 +47,7 @@ public class CustomGlideRequest { uri.append("getCoverArt"); if (params.containsKey("u") && params.get("u") != null) - uri.append("?u=").append(params.get("u")); + uri.append("?u=").append(Util.encode(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) diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java b/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java index 09315dbe..dc7f9922 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java +++ b/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java @@ -32,7 +32,7 @@ public class MusicUtil { uri.append("stream"); if (params.containsKey("u") && params.get("u") != null) - uri.append("?u=").append(params.get("u")); + uri.append("?u=").append(Util.encode(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) @@ -68,7 +68,7 @@ public class MusicUtil { uri.append("download"); if (params.containsKey("u") && params.get("u") != null) - uri.append("?u=").append(params.get("u")); + uri.append("?u=").append(Util.encode(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) @@ -99,7 +99,7 @@ public class MusicUtil { uri.append("stream"); if (params.containsKey("u") && params.get("u") != null) - uri.append("?u=").append(params.get("u")); + uri.append("?u=").append(Util.encode(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) diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/Util.java b/app/src/main/java/com/cappielloantonio/tempo/util/Util.java index 93a32a3d..822238b6 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/Util.java +++ b/app/src/main/java/com/cappielloantonio/tempo/util/Util.java @@ -1,5 +1,8 @@ package com.cappielloantonio.tempo.util; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; @@ -50,4 +53,12 @@ public class Util { return pascalCase.toString(); } + + public static String encode(String value) { + try { + return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); + } catch (UnsupportedEncodingException ex) { + return value; + } + } }