summaryrefslogtreecommitdiff
path: root/src/de/danoeh
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-10-04 13:28:09 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-10-04 13:28:09 +0200
commit243f75b65c615f2c542642d685febf507a2241ad (patch)
treedc5866a3b371002dc033722bfd896ae4f97b201f /src/de/danoeh
parentcd7cb59175177300c64b651d1e32615807ce41a8 (diff)
downloadAntennaPod-243f75b65c615f2c542642d685febf507a2241ad.zip
Changed behavior of continuous playback
Diffstat (limited to 'src/de/danoeh')
-rw-r--r--src/de/danoeh/antennapod/feed/FeedManager.java14
-rw-r--r--src/de/danoeh/antennapod/service/PlaybackService.java2
2 files changed, 15 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/feed/FeedManager.java b/src/de/danoeh/antennapod/feed/FeedManager.java
index 04dc3b2a9..ba9abfe83 100644
--- a/src/de/danoeh/antennapod/feed/FeedManager.java
+++ b/src/de/danoeh/antennapod/feed/FeedManager.java
@@ -617,6 +617,20 @@ public class FeedManager {
}
+ /**
+ * Return the item that comes after this item in the queue or null if this
+ * item is not in the queue or if this item has no successor.
+ */
+ public FeedItem getQueueSuccessorOfItem(FeedItem item) {
+ if (isInQueue(item)) {
+ int itemIndex = queue.indexOf(item);
+ if (itemIndex != -1 && itemIndex < (queue.size() - 1)) {
+ return queue.get(itemIndex + 1);
+ }
+ }
+ return null;
+ }
+
/** Removes all items in queue */
public void clearQueue(final Context context) {
if (AppConfig.DEBUG)
diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java
index f184404b3..ff126e9f2 100644
--- a/src/de/danoeh/antennapod/service/PlaybackService.java
+++ b/src/de/danoeh/antennapod/service/PlaybackService.java
@@ -656,6 +656,7 @@ public class PlaybackService extends Service {
media.setPosition(0);
media.setPlaybackCompletionDate(new Date());
manager.markItemRead(PlaybackService.this, media.getItem(), true);
+ FeedItem nextItem = manager.getQueueSuccessorOfItem(media.getItem());
boolean isInQueue = manager.isInQueue(media.getItem());
if (isInQueue) {
manager.removeQueueItem(PlaybackService.this, media.getItem());
@@ -676,7 +677,6 @@ public class PlaybackService extends Service {
// Prepare for playing next item
boolean followQueue = prefs.getBoolean(
PodcastApp.PREF_FOLLOW_QUEUE, false);
- FeedItem nextItem = manager.getFirstQueueItem();
boolean playNextItem = isInQueue && followQueue && nextItem != null;
if (playNextItem) {
if (AppConfig.DEBUG)