private void refreshPodcast() { if (_player == null) return; PlayerStatus status = PlayerStatus.getCurrentState(this); if (!status.hasActivePodcast()) { _player.stop(); return; } if (status.getPodcastId() != _currentPodcastId) { _currentPodcastId = status.getPodcastId(); if (!_player.prepare(status.getFilename(), status.getPosition())) { _player.stop(); String toastMessage = getResources().getString(R.string.cannot_play_podcast, status.getTitle()); Toast.makeText(this, toastMessage, Toast.LENGTH_LONG).show(); } else { QueueManager.changeActivePodcast(this, status.getPodcastId()); _lockscreenManager.setupLockscreenControls(this, status); showNotification(); } } else { _player.seekTo(status.getPosition()); } }
private void prepareNextPodcast() { PlayerStatus currentState = PlayerStatus.getCurrentState(this); if (!currentState.hasActivePodcast()) { _player.stop(); } else { _player.prepare(currentState.getFilename(), currentState.getPosition()); _currentPodcastId = currentState.getPodcastId(); } }
@Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent == null || intent.getExtras() == null) return START_NOT_STICKY; if (!intent.getExtras().containsKey(Constants.EXTRA_PLAYER_COMMAND)) return START_NOT_STICKY; int pauseReason = intent.getIntExtra(Constants.EXTRA_PLAYER_COMMAND_ARG, -1); if (_player == null && intent.getExtras().containsKey(Constants.EXTRA_PLAYER_COMMAND)) createPlayer(); switch (intent.getIntExtra(Constants.EXTRA_PLAYER_COMMAND, -1)) { case -1: break; case Constants.PLAYER_COMMAND_PLAYPAUSE: _player.playPause(pauseReason); break; case Constants.PLAYER_COMMAND_PLAYSTOP: _player.playStop(); break; case Constants.PLAYER_COMMAND_PLAY: _player.play(); break; case Constants.PLAYER_COMMAND_PAUSE: _player.pause(pauseReason); break; case Constants.PLAYER_COMMAND_RESUME: _player.unpause(pauseReason); break; case Constants.PLAYER_COMMAND_STOP: _player.stop(); break; case Constants.PLAYER_COMMAND_REFRESHPODCAST: refreshPodcast(); break; } return START_NOT_STICKY; }