diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/github/daneren2005/dsub/service/DownloadServiceImpl.java | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/src/github/daneren2005/dsub/service/DownloadServiceImpl.java b/src/github/daneren2005/dsub/service/DownloadServiceImpl.java index fbeba752..731794de 100644 --- a/src/github/daneren2005/dsub/service/DownloadServiceImpl.java +++ b/src/github/daneren2005/dsub/service/DownloadServiceImpl.java @@ -583,21 +583,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { return; } - int index = getCurrentPlayingIndex(); - if (index != -1) { - switch (getRepeatMode()) { - case OFF: - index = index + 1; - break; - case ALL: - index = (index + 1) % size(); - break; - case SINGLE: - break; - default: - break; - } - } + int index = getNextPlayingIndex(); nextSetup = false; if(nextPlayingTask != null) { @@ -618,6 +604,24 @@ public class DownloadServiceImpl extends Service implements DownloadService { public synchronized int getCurrentPlayingIndex() { return downloadList.indexOf(currentPlaying); } + private int getNextPlayingIndex() { + int index = getCurrentPlayingIndex(); + if (index != -1) { + switch (getRepeatMode()) { + case OFF: + index = index + 1; + break; + case ALL: + index = (index + 1) % size(); + break; + case SINGLE: + break; + default: + break; + } + } + return index; + } @Override public DownloadFile getCurrentPlaying() { @@ -767,27 +771,12 @@ public class DownloadServiceImpl extends Service implements DownloadService { public synchronized void next() { int index = getCurrentPlayingIndex(); if (index != -1) { - play(index + 1); + play(getNextPlayingIndex()); } } private void onSongCompleted() { - int index = getCurrentPlayingIndex(); - if (index != -1) { - switch (getRepeatMode()) { - case OFF: - play(index + 1); - break; - case ALL: - play((index + 1) % size()); - break; - case SINGLE: - play(index); - break; - default: - break; - } - } + play(getNextPlayingIndex()); } @Override |