aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2013-01-01 21:33:11 -0800
committerScott Jackson <daneren2005@gmail.com>2013-01-01 21:33:11 -0800
commit8068fc7478741a41695fe063df54990e595ff35d (patch)
treeed4a423708578801e734edefc3a139377daf3789
parent9dcc8661148c0189b428b212b3569dee00a895b9 (diff)
downloaddsub-8068fc7478741a41695fe063df54990e595ff35d.tar.gz
dsub-8068fc7478741a41695fe063df54990e595ff35d.tar.bz2
dsub-8068fc7478741a41695fe063df54990e595ff35d.zip
Fix shuffle buffer being cleared on every shuffle
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/activity/SubsonicTabActivity.java12
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/service/DownloadService.java2
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/service/DownloadServiceImpl.java5
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java8
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java29
5 files changed, 24 insertions, 32 deletions
diff --git a/subsonic-android/src/github/daneren2005/dsub/activity/SubsonicTabActivity.java b/subsonic-android/src/github/daneren2005/dsub/activity/SubsonicTabActivity.java
index 250417e7..5f889e67 100644
--- a/subsonic-android/src/github/daneren2005/dsub/activity/SubsonicTabActivity.java
+++ b/subsonic-android/src/github/daneren2005/dsub/activity/SubsonicTabActivity.java
@@ -455,9 +455,13 @@ public class SubsonicTabActivity extends SherlockActivity {
final EditText genreBox = (EditText)dialogView.findViewById(R.id.genre);
final SharedPreferences prefs = Util.getPreferences(SubsonicTabActivity.this);
- startYearBox.setText(prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_START_YEAR, ""));
- endYearBox.setText(prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_END_YEAR, ""));
- genreBox.setText(prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_GENRE, ""));
+ final String oldStartYear = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_START_YEAR, "");
+ final String oldEndYear = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_END_YEAR, "");
+ final String oldGenre = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_GENRE, "");
+
+ startYearBox.setText(oldStartYear);
+ endYearBox.setText(oldEndYear);
+ genreBox.setText(oldGenre);
AlertDialog.Builder builder = new AlertDialog.Builder(SubsonicTabActivity.this);
builder.setTitle("Shuffle By")
@@ -470,8 +474,6 @@ public class SubsonicTabActivity extends SherlockActivity {
String genre = genreBox.getText().toString();
String startYear = startYearBox.getText().toString();
String endYear = endYearBox.getText().toString();
- getDownloadService().setShuffleParams((genre.length() == 0) ? null : genre,
- (startYear.length() == 0) ? null : startYear, (endYear.length() == 0) ? null : endYear);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(Constants.PREFERENCES_KEY_SHUFFLE_START_YEAR, startYear);
diff --git a/subsonic-android/src/github/daneren2005/dsub/service/DownloadService.java b/subsonic-android/src/github/daneren2005/dsub/service/DownloadService.java
index 4f5d2f17..663a6e6c 100644
--- a/subsonic-android/src/github/daneren2005/dsub/service/DownloadService.java
+++ b/subsonic-android/src/github/daneren2005/dsub/service/DownloadService.java
@@ -38,8 +38,6 @@ public interface DownloadService {
void setShufflePlayEnabled(boolean enabled);
boolean isShufflePlayEnabled();
-
- void setShuffleParams(String genre, String startYear, String endYear);
void shuffle();
diff --git a/subsonic-android/src/github/daneren2005/dsub/service/DownloadServiceImpl.java b/subsonic-android/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
index 7e6a0070..b1b4c01b 100644
--- a/subsonic-android/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
+++ b/subsonic-android/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
@@ -312,11 +312,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
public synchronized boolean isShufflePlayEnabled() {
return shufflePlay;
}
-
- @Override
- public void setShuffleParams(String genre, String startYear, String endYear) {
- shufflePlayBuffer.setOptions(genre, startYear, endYear);
- }
@Override
public synchronized void shuffle() {
diff --git a/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java b/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java
index bc54ac36..47f92bde 100644
--- a/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java
+++ b/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java
@@ -502,19 +502,19 @@ public class RESTMusicService implements MusicService {
names.add("size");
values.add(size);
- if (musicFolderId != null) {
+ if (musicFolderId != null && musicFolderId != "") {
names.add("musicFolderId");
values.add(musicFolderId);
}
- if(genre != null) {
+ if(genre != null && genre != "") {
names.add("genre");
values.add(genre);
}
- if(startYear != null) {
+ if(startYear != null && startYear != "") {
names.add("fromYear");
values.add(startYear);
}
- if(endYear != null) {
+ if(endYear != null && endYear != "") {
names.add("toYear");
values.add(endYear);
}
diff --git a/subsonic-android/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java b/subsonic-android/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java
index c82f0708..3c9ccc58 100644
--- a/subsonic-android/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java
+++ b/subsonic-android/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java
@@ -25,7 +25,9 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import android.content.Context;
+import android.content.SharedPreferences;
import android.util.Log;
+import github.daneren2005.dsub.activity.SubsonicTabActivity;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.service.MusicService;
import github.daneren2005.dsub.service.MusicServiceFactory;
@@ -46,12 +48,12 @@ public class ShufflePlayBuffer {
private int currentServer;
private String currentFolder;
- private String genre;
- private String startYear;
- private String endYear;
+ private String genre = "";
+ private String startYear = "";
+ private String endYear = "";
public ShufflePlayBuffer(Context context) {
- this.context = context;
+ this.context = context;
executorService = Executors.newSingleThreadScheduledExecutor();
Runnable runnable = new Runnable() {
@Override
@@ -105,22 +107,17 @@ public class ShufflePlayBuffer {
private void clearBufferIfnecessary() {
synchronized (buffer) {
- if (currentServer != Util.getActiveServer(context) || currentFolder != Util.getSelectedMusicFolderId(context)) {
+ final SharedPreferences prefs = Util.getPreferences(context);
+ if (currentServer != Util.getActiveServer(context) || currentFolder != Util.getSelectedMusicFolderId(context)
+ || genre != prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_GENRE, "") || startYear != prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_START_YEAR, "")
+ || endYear != prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_END_YEAR, "")) {
currentServer = Util.getActiveServer(context);
currentFolder = Util.getSelectedMusicFolderId(context);
+ genre = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_GENRE, "");
+ startYear = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_START_YEAR, "");
+ endYear = prefs.getString(Constants.PREFERENCES_KEY_SHUFFLE_END_YEAR, "");
buffer.clear();
}
}
}
-
- public void setOptions(String genre, String startYear, String endYear) {
- this.genre = genre;
- this.startYear = startYear;
- this.endYear = endYear;
-
- synchronized (buffer) {
- buffer.clear();
- }
- }
-
}