diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-07-08 12:57:23 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-07-08 12:57:23 +0200 |
commit | 216304930591ecec6d736474ac2a1facdf6352ff (patch) | |
tree | df08024bc3cbe7c9ab06f89379666c9e103e1eb0 /src | |
parent | d18def3fb3e71e9c5a21c25b45015c72187f2534 (diff) | |
download | AntennaPod-216304930591ecec6d736474ac2a1facdf6352ff.zip |
Implemented followQueue preference
Diffstat (limited to 'src')
-rw-r--r-- | src/de/podfetcher/service/PlaybackService.java | 20 |
1 files changed, 13 insertions, 7 deletions
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); } } |