From 27fe652551402a5696deecc1978a1ad7e67784f8 Mon Sep 17 00:00:00 2001 From: Michael Kaiser Date: Tue, 23 Oct 2012 14:50:19 +0200 Subject: [PATCH] Add the concept of a FeedItem that is "in progress" A FeedItem should be considered "in progress" when the user started listening or watching the media, but did not complete it yet. --- src/de/danoeh/antennapod/feed/Feed.java | 15 +++++++++++++++ src/de/danoeh/antennapod/feed/FeedItem.java | 4 ++++ src/de/danoeh/antennapod/feed/FeedMedia.java | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/src/de/danoeh/antennapod/feed/Feed.java b/src/de/danoeh/antennapod/feed/Feed.java index 7915791a5..63517ef25 100644 --- a/src/de/danoeh/antennapod/feed/Feed.java +++ b/src/de/danoeh/antennapod/feed/Feed.java @@ -82,6 +82,21 @@ public class Feed extends FeedFile { return count; } + /** + * Returns the number of FeedItems where the media started to play but + * wasn't finished yet. + * */ + public int getNumOfStartedItems() { + int count = 0; + + for (FeedItem item : items) { + if (item.isInProgress()) { + count++; + } + } + return count; + } + /** * Returns true if at least one item in the itemlist is unread.If the * 'display only episodes' - preference is set to true, this method will diff --git a/src/de/danoeh/antennapod/feed/FeedItem.java b/src/de/danoeh/antennapod/feed/FeedItem.java index a8bb0dbb4..fe5d66e22 100644 --- a/src/de/danoeh/antennapod/feed/FeedItem.java +++ b/src/de/danoeh/antennapod/feed/FeedItem.java @@ -128,6 +128,10 @@ public class FeedItem extends FeedComponent { return read; } + public boolean isInProgress() { + return (media != null && media.isInProgress()); + } + public String getContentEncoded() { return contentEncoded; } diff --git a/src/de/danoeh/antennapod/feed/FeedMedia.java b/src/de/danoeh/antennapod/feed/FeedMedia.java index 55e1f9bf3..81fa54a79 100644 --- a/src/de/danoeh/antennapod/feed/FeedMedia.java +++ b/src/de/danoeh/antennapod/feed/FeedMedia.java @@ -118,4 +118,8 @@ public class FeedMedia extends FeedFile { this.playbackCompletionDate = playbackCompletionDate; } + public boolean isInProgress() { + return (this.position > 0 && this.playbackCompletionDate == null); + } + }