From 366c98a3abab425d562b4dba811d04093dfabdba Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 30 Nov 2015 15:34:14 -0800 Subject: Move next setup login into DownloadService, fix some casting UI issues --- .../daneren2005/dsub/service/DLNAController.java | 6 ------ .../daneren2005/dsub/service/DownloadService.java | 23 ++++++++++++++++++---- .../daneren2005/dsub/service/RemoteController.java | 11 +---------- 3 files changed, 20 insertions(+), 20 deletions(-) (limited to 'app') 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 64abce8a..a0dc16c1 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DLNAController.java @@ -171,11 +171,6 @@ public class DLNAController extends RemoteController { switch (lastChange.getEventedValue(0, AVTransportVariable.TransportState.class).getValue()) { case PLAYING: downloadService.setPlayerState(PlayerState.STARTED); - - // Try to setup next playing after playback start has been registered - if(supportsSetupNext && downloadService.getNextPlayerState() == PlayerState.IDLE) { - downloadService.setNextPlaying(); - } break; case PAUSED_PLAYBACK: downloadService.setPlayerState(PlayerState.PAUSED); @@ -408,7 +403,6 @@ public class DLNAController extends RemoteController { Pair songInfo = getSongInfo(currentPlaying); currentPlayingURI = songInfo.getFirst(); - downloadService.setNextPlayerState(PlayerState.IDLE); controlPoint.execute(new SetAVTransportURI(getTransportService(), songInfo.getFirst(), songInfo.getSecond()) { @Override public void success(ActionInvocation invocation) { 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 baff1a72..37070903 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java @@ -401,7 +401,10 @@ public class DownloadService extends Service { offset++; } } - setNextPlaying(); + + if(remoteState == LOCAL || (remoteController != null && remoteController.isNextSupported())) { + setNextPlaying(); + } } else { int size = size(); int index = getCurrentPlayingIndex(); @@ -881,13 +884,13 @@ public class DownloadService extends Service { if(remoteState == LOCAL) { nextPlayingTask = new CheckCompletionTask(nextPlaying); nextPlayingTask.execute(); - } else if(remoteController != null) { + } else if(remoteController != null && remoteController.isNextSupported()) { remoteController.changeNextTrack(nextPlaying); } } else { if(remoteState == LOCAL) { // resetNext(); - } else if(remoteController != null) { + } else if(remoteController != null && remoteController.isNextSupported()) { remoteController.changeNextTrack(nextPlaying); } nextPlaying = null; @@ -1100,11 +1103,14 @@ public class DownloadService extends Service { } mediaPlayer.seekTo(position); - cachedPosition = position; subtractPosition = 0; } + cachedPosition = position; onSongProgress(); + if(playerState == PAUSED) { + lifecycleSupport.serializeDownloadQueue(); + } } catch (Exception x) { handleError(x); } @@ -1408,6 +1414,15 @@ public class DownloadService extends Service { positionCache.stop(); positionCache = null; } + + if(remoteController != null && remoteController.isNextSupported()) { + if(playerState == STARTED && nextPlayerState == IDLE) { + setNextPlaying(); + } else if(playerState == PREPARING || playerState == IDLE) { + nextPlayerState = IDLE; + } + } + onStateUpdate(); } diff --git a/app/src/main/java/github/daneren2005/dsub/service/RemoteController.java b/app/src/main/java/github/daneren2005/dsub/service/RemoteController.java index cac28c09..99502f5e 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/RemoteController.java +++ b/app/src/main/java/github/daneren2005/dsub/service/RemoteController.java @@ -19,18 +19,11 @@ package github.daneren2005.dsub.service; -import android.content.Context; import android.util.Log; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ProgressBar; -import android.widget.Toast; import java.util.Iterator; import java.util.concurrent.LinkedBlockingQueue; -import github.daneren2005.dsub.R; import github.daneren2005.dsub.domain.RemoteStatus; import github.daneren2005.serverproxy.WebProxy; @@ -48,9 +41,7 @@ public abstract class RemoteController { public abstract void changePosition(int seconds); public abstract void changeTrack(int index, DownloadFile song); // Really is abstract, just don't want to require RemoteController's support it - public void changeNextTrack(DownloadFile song) { - - }; + public void changeNextTrack(DownloadFile song) {} public boolean isNextSupported() { return this.nextSupported; } -- cgit v1.2.3