Implemented followQueue preference

This commit is contained in:
daniel oeh 2012-07-08 12:57:23 +02:00
parent d18def3fb3
commit 2163049305

View File

@ -392,27 +392,33 @@ public class PlaybackService extends Service {
@Override @Override
public void onCompletion(MediaPlayer mp) { public void onCompletion(MediaPlayer mp) {
Log.d(TAG, "Playback completed"); Log.d(TAG, "Playback completed");
// Save state
positionSaver.cancel(true); positionSaver.cancel(true);
media.setPosition(0); media.setPosition(0);
manager.markItemRead(PlaybackService.this, media.getItem(), true); manager.markItemRead(PlaybackService.this, media.getItem(), true);
if (manager.isInQueue(media.getItem())) { boolean isInQueue = manager.isInQueue(media.getItem());
if (isInQueue) {
manager.removeQueueItem(PlaybackService.this, media.getItem()); manager.removeQueueItem(PlaybackService.this, media.getItem());
} }
manager.setFeedMedia(PlaybackService.this, media); manager.setFeedMedia(PlaybackService.this, media);
// Prepare for playing next item
boolean followQueue = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext())
.getBoolean(PodcastApp.PREF_FOLLOW_QUEUE, false);
FeedItem nextItem = manager.getFirstQueueItem(); FeedItem nextItem = manager.getFirstQueueItem();
if (nextItem == null) { if (isInQueue && followQueue && nextItem != null) {
Log.d(TAG, "No more items in queue");
stopWidgetUpdater();
setStatus(PlayerStatus.STOPPED);
stopForeground(true);
} else {
Log.d(TAG, "Loading next item in queue"); Log.d(TAG, "Loading next item in queue");
media = nextItem.getMedia(); media = nextItem.getMedia();
feed = nextItem.getFeed(); feed = nextItem.getFeed();
shouldStream = !media.isDownloaded(); shouldStream = !media.isDownloaded();
resetVideoSurface(); resetVideoSurface();
sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0); sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0);
} else {
Log.d(TAG, "Stopping playback");
stopWidgetUpdater();
setStatus(PlayerStatus.STOPPED);
stopForeground(true);
} }
} }