From 216304930591ecec6d736474ac2a1facdf6352ff Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 8 Jul 2012 12:57:23 +0200 Subject: Implemented followQueue preference --- src/de/podfetcher/service/PlaybackService.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/de/podfetcher') diff --git a/src/de/podfetcher/service/PlaybackService.java b/src/de/podfetcher/service/PlaybackService.java index 7958e0c43..12effb324 100644 --- a/src/de/podfetcher/service/PlaybackService.java +++ b/src/de/podfetcher/service/PlaybackService.java @@ -392,27 +392,33 @@ public class PlaybackService extends Service { @Override public void onCompletion(MediaPlayer mp) { Log.d(TAG, "Playback completed"); + // Save state positionSaver.cancel(true); media.setPosition(0); 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.setFeedMedia(PlaybackService.this, media); + // Prepare for playing next item + boolean followQueue = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()) + .getBoolean(PodcastApp.PREF_FOLLOW_QUEUE, false); FeedItem nextItem = manager.getFirstQueueItem(); - if (nextItem == null) { - Log.d(TAG, "No more items in queue"); - stopWidgetUpdater(); - setStatus(PlayerStatus.STOPPED); - stopForeground(true); - } else { + if (isInQueue && followQueue && nextItem != null) { Log.d(TAG, "Loading next item in queue"); media = nextItem.getMedia(); feed = nextItem.getFeed(); shouldStream = !media.isDownloaded(); resetVideoSurface(); sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0); + } else { + Log.d(TAG, "Stopping playback"); + stopWidgetUpdater(); + setStatus(PlayerStatus.STOPPED); + stopForeground(true); } } -- cgit v1.2.3