aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-09-07 15:08:46 -0700
committerScott Jackson <daneren2005@gmail.com>2015-09-07 15:08:46 -0700
commit120c7a3d53c79e8fecee1ac60f764479e492eacb (patch)
treeef016324d90dbad75ac37a412416b3eab9419d7c /app/src
parentfa90a5c9e049478908f88b7f891411d62ebe80d4 (diff)
downloaddsub-120c7a3d53c79e8fecee1ac60f764479e492eacb.tar.gz
dsub-120c7a3d53c79e8fecee1ac60f764479e492eacb.tar.bz2
dsub-120c7a3d53c79e8fecee1ac60f764479e492eacb.zip
Add basic support for Madsonic 6.0+ (first run will fail)
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/ServerInfo.java4
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java4
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/Constants.java3
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/Util.java11
4 files changed, 12 insertions, 10 deletions
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();