aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
index 97899529..b405211d 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
@@ -41,7 +41,9 @@ import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.params.ConnPerRouteBean;
@@ -730,6 +732,22 @@ public class RESTMusicService implements MusicService {
values.add(genre);
}
if(startYear != null && !"".equals(startYear)) {
+ // Check to make sure user isn't doing 2015 -> 2010 since Subsonic will return no results
+ if(endYear != null && !"".equals(endYear)) {
+ try {
+ int startYearInt = Integer.parseInt(startYear);
+ int endYearInt = Integer.parseInt(endYear);
+
+ if(startYearInt > endYearInt) {
+ String tmp = startYear;
+ startYear = endYear;
+ endYear = tmp;
+ }
+ } catch(Exception e) {
+ Log.w(TAG, "Failed to convert start/end year into ints", e);
+ }
+ }
+
names.add("fromYear");
values.add(startYear);
}
@@ -1886,7 +1904,7 @@ public class RESTMusicService implements MusicService {
while (true) {
attempts++;
HttpContext httpContext = new BasicHttpContext();
- final HttpPost request = new HttpPost(url);
+ final HttpRequestBase request = (url.indexOf("rest") == -1) ? new HttpGet(url) : new HttpPost(url);
if (task != null) {
// Attempt to abort the HTTP request if the task is cancelled.
@@ -1913,12 +1931,12 @@ public class RESTMusicService implements MusicService {
});
}
- if (parameterNames != null) {
+ if (parameterNames != null && request instanceof HttpPost) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
for (int i = 0; i < parameterNames.size(); i++) {
params.add(new BasicNameValuePair(parameterNames.get(i), String.valueOf(parameterValues.get(i))));
}
- request.setEntity(new UrlEncodedFormEntity(params, Constants.UTF_8));
+ ((HttpPost) request).setEntity(new UrlEncodedFormEntity(params, Constants.UTF_8));
}
if (requestParams != null) {