summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/feed
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-11-16 19:55:59 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2012-11-16 19:55:59 +0100
commitef5dc7cb0e839ae2f80e3acf6c4c41bcf63f0a94 (patch)
tree4c8228e23586ce123920e813fce4a7aa7f547ee0 /src/de/danoeh/antennapod/feed
parent385b11eae209c37cff64375b7fd6669e71918e5a (diff)
downloadAntennaPod-ef5dc7cb0e839ae2f80e3acf6c4c41bcf63f0a94.zip
Added state enum to feeditem class
The getStatus() method should now be used to handle feeditems in different states instead of handling its attributes directly.
Diffstat (limited to 'src/de/danoeh/antennapod/feed')
-rw-r--r--src/de/danoeh/antennapod/feed/Feed.java10
-rw-r--r--src/de/danoeh/antennapod/feed/FeedItem.java18
-rw-r--r--src/de/danoeh/antennapod/feed/FeedManager.java4
3 files changed, 24 insertions, 8 deletions
diff --git a/src/de/danoeh/antennapod/feed/Feed.java b/src/de/danoeh/antennapod/feed/Feed.java
index 8ca82be62..7640ef7d1 100644
--- a/src/de/danoeh/antennapod/feed/Feed.java
+++ b/src/de/danoeh/antennapod/feed/Feed.java
@@ -74,7 +74,7 @@ public class Feed extends FeedFile {
.getBoolean(PodcastApp.PREF_DISPLAY_ONLY_EPISODES, false);
for (FeedItem item : items) {
- if (!item.isRead()) {
+ if (item.getState() == FeedItem.State.NEW) {
if (!displayOnlyEpisodes || item.getMedia() != null) {
count++;
}
@@ -91,7 +91,9 @@ public class Feed extends FeedFile {
int count = 0;
for (FeedItem item : items) {
- if (item.isInProgress()) {
+ FeedItem.State state = item.getState();
+ if (state == FeedItem.State.IN_PROGRESS
+ || state == FeedItem.State.PLAYING) {
count++;
}
}
@@ -108,7 +110,7 @@ public class Feed extends FeedFile {
.getDefaultSharedPreferences(PodcastApp.getInstance())
.getBoolean(PodcastApp.PREF_DISPLAY_ONLY_EPISODES, false);
for (FeedItem item : items) {
- if (!item.isRead()) {
+ if (item.getState() == FeedItem.State.NEW) {
if (!displayOnlyEpisodes || item.getMedia() != null) {
return true;
}
@@ -159,7 +161,7 @@ public class Feed extends FeedFile {
return download_url;
}
}
-
+
/** Calls cacheDescriptions on all items. */
protected void cacheDescriptionsOfItems() {
if (items != null) {
diff --git a/src/de/danoeh/antennapod/feed/FeedItem.java b/src/de/danoeh/antennapod/feed/FeedItem.java
index 7ce58d081..fa5c49436 100644
--- a/src/de/danoeh/antennapod/feed/FeedItem.java
+++ b/src/de/danoeh/antennapod/feed/FeedItem.java
@@ -157,7 +157,7 @@ public class FeedItem extends FeedComponent {
}
}
- public boolean isInProgress() {
+ private boolean isInProgress() {
return (media != null && media.isInProgress());
}
@@ -201,7 +201,7 @@ public class FeedItem extends FeedComponent {
return media != null;
}
- public boolean isPlaying() {
+ private boolean isPlaying() {
if (media != null) {
if (PodcastApp.getCurrentlyPlayingMediaId() == media.getId()) {
return true;
@@ -217,4 +217,18 @@ public class FeedItem extends FeedComponent {
public void setCachedContentEncoded(String c) {
cachedContentEncoded = new SoftReference<String>(c);
}
+
+ public enum State {NEW, IN_PROGRESS, READ, PLAYING}
+
+ public State getState() {
+ if (hasMedia()) {
+ if (isPlaying()) {
+ return State.PLAYING;
+ }
+ if (isInProgress()) {
+ return State.IN_PROGRESS;
+ }
+ }
+ return (isRead() ? State.READ : State.NEW);
+ }
}
diff --git a/src/de/danoeh/antennapod/feed/FeedManager.java b/src/de/danoeh/antennapod/feed/FeedManager.java
index 0666261d4..03a0637ae 100644
--- a/src/de/danoeh/antennapod/feed/FeedManager.java
+++ b/src/de/danoeh/antennapod/feed/FeedManager.java
@@ -216,7 +216,7 @@ public class FeedManager {
}
// delete stored media files and mark them as read
for (FeedItem item : feed.getItems()) {
- if (!item.isRead()) {
+ if (item.getState() == FeedItem.State.NEW) {
unreadItems.remove(item);
}
if (queue.contains(item)) {
@@ -1173,7 +1173,7 @@ public class FeedManager {
: false;
item.setItemIdentifier(itemlistCursor
.getString(PodDBAdapter.IDX_FI_SMALL_ITEM_IDENTIFIER));
- if (!item.read) {
+ if (item.getState() == FeedItem.State.NEW) {
unreadItems.add(item);
}