diff options
author | Scott Jackson <daneren2005@gmail.com> | 2015-11-30 17:54:27 -0800 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2015-11-30 17:54:27 -0800 |
commit | cef807002df9adaeabe8937510444f2372a6e784 (patch) | |
tree | 67e7898e6b492dad6c506bccaa44d326888ac890 /app | |
parent | 32fd7c300851ebd558cd17a7d5c90f8cf7f17530 (diff) | |
download | dsub-cef807002df9adaeabe8937510444f2372a6e784.tar.gz dsub-cef807002df9adaeabe8937510444f2372a6e784.tar.bz2 dsub-cef807002df9adaeabe8937510444f2372a6e784.zip |
Fix gapless playback on DLNA not scrobbling completion
Diffstat (limited to 'app')
3 files changed, 9 insertions, 7 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java b/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java index 7d2b0a07..79312f44 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java +++ b/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java @@ -483,8 +483,6 @@ public class ChromeCastController extends RemoteController { break; case MediaStatus.PLAYER_STATE_IDLE: if (mediaStatus.getIdleReason() == MediaStatus.IDLE_REASON_FINISHED) { - downloadService.setPlayerState(PlayerState.COMPLETED); - downloadService.postPlayCleanup(); downloadService.onSongCompleted(); } else if (mediaStatus.getIdleReason() == MediaStatus.IDLE_REASON_INTERRUPTED) { if (downloadService.getPlayerState() != PlayerState.PREPARING) { diff --git a/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java b/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java index 94bf7231..f978c614 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java @@ -188,8 +188,6 @@ public class DLNAController extends RemoteController { failedLoad(); } else if(downloadService.getPlayerState() == PlayerState.STARTED) { // Played until the end - downloadService.setPlayerState(PlayerState.COMPLETED); - downloadService.postPlayCleanup(); downloadService.onSongCompleted(); } else { downloadService.setPlayerState(PlayerState.STOPPED); @@ -631,9 +629,7 @@ public class DLNAController extends RemoteController { currentPosition = (int) positionInfo.getTrackElapsedSeconds(); if(positionInfo.getTrackURI() != null && positionInfo.getTrackURI().equals(nextPlayingURI) && downloadService.getNextPlayerState() == PlayerState.PREPARED) { - downloadService.setCurrentPlaying(nextPlaying, true); - downloadService.setPlayerState(PlayerState.STARTED); - downloadService.setNextPlayerState(PlayerState.IDLE); + downloadService.onNextStarted(nextPlaying); } downloadService.postDelayed(new Runnable() { 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 ae619802..788f929e 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java @@ -1189,8 +1189,16 @@ public class DownloadService extends Service { } public void onSongCompleted() { + setPlayerState(PlayerState.COMPLETED); + postPlayCleanup(); play(getNextPlayingIndex()); } + public void onNextStarted(DownloadFile nextPlaying) { + setPlayerState(COMPLETED); + postPlayCleanup(); + setCurrentPlaying(nextPlaying, true); + setPlayerState(STARTED); + } public synchronized void pause() { pause(false); |