diff options
author | daneren2005 <daneren2005@gmail.com> | 2014-05-19 11:34:27 -0700 |
---|---|---|
committer | daneren2005 <daneren2005@gmail.com> | 2014-05-19 11:34:27 -0700 |
commit | a9567f0794e65e5d72d206670bf4439bfceeafa0 (patch) | |
tree | cdbc9b265774c87f613f28cb1ebc063af0a890da /src/github | |
parent | 9c3a80e3c56f39d96582ec27ca0710e6b7ee198e (diff) | |
download | dsub-a9567f0794e65e5d72d206670bf4439bfceeafa0.tar.gz dsub-a9567f0794e65e5d72d206670bf4439bfceeafa0.tar.bz2 dsub-a9567f0794e65e5d72d206670bf4439bfceeafa0.zip |
Add delayed call to checkDownloads after filling buffer
checkDownloads is no longer called in a loop, which was how the queue got filled after clearing and refreshing the shuffle buffer. Fix was to add a delayed call which calls checkDownloads after a refill action occurs.
Diffstat (limited to 'src/github')
-rw-r--r-- | src/github/daneren2005/dsub/util/ShufflePlayBuffer.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java b/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java index c28e24a3..de1be13a 100644 --- a/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java +++ b/src/github/daneren2005/dsub/util/ShufflePlayBuffer.java @@ -49,7 +49,8 @@ public class ShufflePlayBuffer { private boolean firstRun = true; private final ArrayList<MusicDirectory.Entry> buffer = new ArrayList<MusicDirectory.Entry>(); private int lastCount = -1; - private Context context; + private DownloadService context; + private boolean awaitingResults = false; private SharedPreferences.OnSharedPreferenceChangeListener listener; private int currentServer; @@ -58,7 +59,7 @@ public class ShufflePlayBuffer { private String startYear = ""; private String endYear = ""; - public ShufflePlayBuffer(Context context) { + public ShufflePlayBuffer(DownloadService context) { this.context = context; executorService = Executors.newSingleThreadScheduledExecutor(); @@ -90,6 +91,9 @@ public class ShufflePlayBuffer { } } Log.i(TAG, "Taking " + result.size() + " songs from shuffle play buffer. " + buffer.size() + " remaining."); + if(result.isEmpty()) { + awaitingResults = true; + } return result; } @@ -139,6 +143,11 @@ public class ShufflePlayBuffer { } Log.w(TAG, "Failed to refill shuffle play buffer.", x); } + + if(awaitingResults) { + awaitingResults = false; + context.checkDownloads(); + } } private void clearBufferIfnecessary() { |