aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/service
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2017-06-19 11:38:58 -0700
committerScott Jackson <daneren2005@gmail.com>2017-06-19 11:38:58 -0700
commitf863540f073fec131977d071605430b9770d57ae (patch)
treec79602121520cb90fb5ed289df76f5494a903b4d /app/src/main/java/github/daneren2005/dsub/service
parentb0e0ab17a5689e726efb51a0a6a56da634aaa79f (diff)
parente41dfa468d47f4ae6b06117040e9903b62fe9aaa (diff)
downloaddsub-f863540f073fec131977d071605430b9770d57ae.tar.gz
dsub-f863540f073fec131977d071605430b9770d57ae.tar.bz2
dsub-f863540f073fec131977d071605430b9770d57ae.zip
Merge branch 'master' into edge
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/service')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/DownloadService.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java
index fe18ede0..4b8d9db3 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java
@@ -1025,6 +1025,10 @@ public class DownloadService extends Service {
}
}
+ public synchronized boolean shouldFastForward() {
+ return size() == 1 || (currentPlaying != null && !currentPlaying.isSong());
+ }
+
public synchronized List<DownloadFile> getDownloads() {
List<DownloadFile> temp = new ArrayList<DownloadFile>();
temp.addAll(downloadList);
@@ -1200,12 +1204,13 @@ public class DownloadService extends Service {
}
// If only one song, just skip within song
- if(size() == 1 || (currentPlaying != null && !currentPlaying.isSong())) {
+ if(shouldFastForward()) {
rewind();
return;
+ } else if(playerState == PREPARING || playerState == PREPARED) {
+ return;
}
-
// Restart song if played more than five seconds.
if (getPlayerPosition() > 5000 || (index == 0 && getRepeatMode() != RepeatMode.ALL)) {
seekTo(0);
@@ -1226,7 +1231,7 @@ public class DownloadService extends Service {
}
public synchronized void next(boolean forceCutoff, boolean forceStart) {
// If only one song, just skip within song
- if(size() == 1 || (currentPlaying != null && !currentPlaying.isSong())) {
+ if(shouldFastForward()) {
fastForward();
return;
} else if(playerState == PREPARING || playerState == PREPARED) {
@@ -2817,12 +2822,13 @@ public class DownloadService extends Service {
private void onSongChanged() {
final long atRevision = revision;
synchronized(onSongChangedListeners) {
+ final boolean shouldFastForward = shouldFastForward();
for (final OnSongChangedListener listener : onSongChangedListeners) {
handler.post(new Runnable() {
@Override
public void run() {
if (revision == atRevision && instance != null) {
- listener.onSongChanged(currentPlaying, currentPlayingIndex);
+ listener.onSongChanged(currentPlaying, currentPlayingIndex, shouldFastForward);
MusicDirectory.Entry entry = currentPlaying != null ? currentPlaying.getSong() : null;
listener.onMetadataUpdate(entry, METADATA_UPDATED_ALL);
@@ -2844,12 +2850,13 @@ public class DownloadService extends Service {
private void onSongsChanged() {
final long atRevision = revision;
synchronized(onSongChangedListeners) {
+ final boolean shouldFastForward = shouldFastForward();
for (final OnSongChangedListener listener : onSongChangedListeners) {
handler.post(new Runnable() {
@Override
public void run() {
if (revision == atRevision && instance != null) {
- listener.onSongsChanged(downloadList, currentPlaying, currentPlayingIndex);
+ listener.onSongsChanged(downloadList, currentPlaying, currentPlayingIndex, shouldFastForward);
}
}
});
@@ -3049,8 +3056,8 @@ public class DownloadService extends Service {
}
public interface OnSongChangedListener {
- void onSongChanged(DownloadFile currentPlaying, int currentPlayingIndex);
- void onSongsChanged(List<DownloadFile> songs, DownloadFile currentPlaying, int currentPlayingIndex);
+ void onSongChanged(DownloadFile currentPlaying, int currentPlayingIndex, boolean shouldFastForward);
+ void onSongsChanged(List<DownloadFile> songs, DownloadFile currentPlaying, int currentPlayingIndex, boolean shouldFastForward);
void onSongProgress(DownloadFile currentPlaying, int millisPlayed, Integer duration, boolean isSeekable);
void onStateUpdate(DownloadFile downloadFile, PlayerState playerState);
void onMetadataUpdate(MusicDirectory.Entry entry, int fieldChange);