diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-11-16 19:55:59 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-11-16 19:55:59 +0100 |
commit | ef5dc7cb0e839ae2f80e3acf6c4c41bcf63f0a94 (patch) | |
tree | 4c8228e23586ce123920e813fce4a7aa7f547ee0 /src/de/danoeh/antennapod/feed | |
parent | 385b11eae209c37cff64375b7fd6669e71918e5a (diff) | |
download | AntennaPod-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.java | 10 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedItem.java | 18 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedManager.java | 4 |
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); } |