From 120c7a3d53c79e8fecee1ac60f764479e492eacb Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 7 Sep 2015 15:08:46 -0700 Subject: Add basic support for Madsonic 6.0+ (first run will fail) --- .../main/java/github/daneren2005/dsub/domain/ServerInfo.java | 4 ++-- .../daneren2005/dsub/service/parser/AbstractParser.java | 4 ++-- app/src/main/java/github/daneren2005/dsub/util/Constants.java | 3 ++- app/src/main/java/github/daneren2005/dsub/util/Util.java | 11 ++++++----- 4 files changed, 12 insertions(+), 10 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/github/daneren2005/dsub/domain/ServerInfo.java b/app/src/main/java/github/daneren2005/dsub/domain/ServerInfo.java index 162ffaa9..658d665d 100644 --- a/app/src/main/java/github/daneren2005/dsub/domain/ServerInfo.java +++ b/app/src/main/java/github/daneren2005/dsub/domain/ServerInfo.java @@ -218,7 +218,7 @@ public class ServerInfo implements Serializable { return canUseToken(context, Util.getActiveServer(context)); } public static boolean canUseToken(Context context, int instance) { - return isStockSubsonic(context, instance) && checkServerVersion(context, "1.13", instance) || - isMadsonic(context, instance) && checkServerVersion(context, "2.0", instance); + return isStockSubsonic(context, instance) && checkServerVersion(context, "1.13", instance)/* || + isMadsonic(context, instance) && checkServerVersion(context, "2.0", instance)*/; } } diff --git a/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java b/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java index bc5d2199..622314eb 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java +++ b/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java @@ -126,14 +126,14 @@ public abstract class AbstractParser { protected String getElementName() { String name = parser.getName(); - if ("subsonic-response".equals(name)) { + if ("subsonic-response".equals(name) || "madsonic-response".equals(name)) { rootElementFound = true; String version = get("version"); if (version != null) { ServerInfo server = new ServerInfo(); server.setRestVersion(new Version(version)); - if("madsonic".equals(get("type"))) { + if("madsonic".equals(get("type")) || "madsonic-response".equals(name)) { server.setRestType(ServerInfo.TYPE_MADSONIC); } server.saveServerInfo(context, instance); diff --git a/app/src/main/java/github/daneren2005/dsub/util/Constants.java b/app/src/main/java/github/daneren2005/dsub/util/Constants.java index 5c477ad9..3c685fe9 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Constants.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Constants.java @@ -29,7 +29,8 @@ public final class Constants { // REST protocol version and client ID. // Note: Keep it as low as possible to maintain compatibility with older servers. - public static final String REST_PROTOCOL_VERSION = "1.2.0"; + public static final String REST_PROTOCOL_VERSION_SUBSONIC = "1.2.0"; + public static final String REST_PROTOCOL_VERSION_MADSONIC = "2.0.0"; public static final String REST_CLIENT_ID = "DSub"; public static final String CHROMECAST_CLIENT_ID = "DSubCC"; public static final String LAST_VERSION = "subsonic.version"; diff --git a/app/src/main/java/github/daneren2005/dsub/util/Util.java b/app/src/main/java/github/daneren2005/dsub/util/Util.java index 29d729f8..cee31112 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Util.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Util.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; -import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; @@ -47,7 +46,6 @@ import android.text.util.Linkify; import android.util.Log; import android.util.SparseArray; import android.view.Gravity; -import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; @@ -84,10 +82,8 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Random; import java.util.TimeZone; @@ -422,7 +418,12 @@ public final class Util { builder.append("&p=").append(password); } - builder.append("&v=").append(Constants.REST_PROTOCOL_VERSION); + + if(method != null && ServerInfo.isMadsonic(context, instance) && ServerInfo.checkServerVersion(context, "2.0", instance)) { + builder.append("&v=").append(Constants.REST_PROTOCOL_VERSION_MADSONIC); + } else { + builder.append("&v=").append(Constants.REST_PROTOCOL_VERSION_SUBSONIC); + } builder.append("&c=").append(Constants.REST_CLIENT_ID); return builder.toString(); -- cgit v1.2.3