diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-06-17 13:58:36 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-06-17 13:58:36 +0200 |
commit | 14845e9a422e15462467cb0d2fe0582f9d387026 (patch) | |
tree | 92e807c878f0d4a9c27978886f01eb7cf82c1ce0 /src/de/podfetcher/feed/FeedManager.java | |
parent | c2542c6f920ce9a9fdb60a48100937f3f71d63b1 (diff) | |
download | AntennaPod-14845e9a422e15462467cb0d2fe0582f9d387026.zip |
Added list which shows unread items
Diffstat (limited to 'src/de/podfetcher/feed/FeedManager.java')
-rw-r--r-- | src/de/podfetcher/feed/FeedManager.java | 59 |
1 files changed, 44 insertions, 15 deletions
diff --git a/src/de/podfetcher/feed/FeedManager.java b/src/de/podfetcher/feed/FeedManager.java index 716aa36f7..6aab35159 100644 --- a/src/de/podfetcher/feed/FeedManager.java +++ b/src/de/podfetcher/feed/FeedManager.java @@ -24,11 +24,15 @@ public class FeedManager { private ArrayList<Feed> feeds; private ArrayList<FeedCategory> categories; + + /** Contains all items where 'read' is false */ + private ArrayList<FeedItem> unreadItems; private DownloadRequester requester; private FeedManager() { feeds = new ArrayList<Feed>(); categories = new ArrayList<FeedCategory>(); + unreadItems = new ArrayList<FeedItem>(); requester = DownloadRequester.getInstance(); } @@ -39,19 +43,21 @@ public class FeedManager { } return singleton; } - - /** Play FeedMedia and start the playback service + launch Mediaplayer Activity. */ + + /** + * Play FeedMedia and start the playback service + launch Mediaplayer + * Activity. + */ public void playMedia(Context context, FeedMedia media) { // Start playback Service - Intent launchIntent = new Intent(context, - PlaybackService.class); + Intent launchIntent = new Intent(context, PlaybackService.class); launchIntent.putExtra(PlaybackService.EXTRA_MEDIA_ID, media.getId()); - launchIntent.putExtra(PlaybackService.EXTRA_FEED_ID, media.getItem().getFeed().getId()); + launchIntent.putExtra(PlaybackService.EXTRA_FEED_ID, media.getItem() + .getFeed().getId()); context.startService(launchIntent); // Launch Mediaplayer - Intent playerIntent = new Intent(context, - MediaplayerActivity.class); + Intent playerIntent = new Intent(context, MediaplayerActivity.class); context.startActivity(playerIntent); } @@ -65,12 +71,26 @@ public class FeedManager { } media.setDownloaded(false); media.setFile_url(""); - setFeedMedia(context, media); + setFeedMedia(context, media); } Log.d(TAG, "Deleting File. Result: " + result); return result; } + /** + * Sets the 'read'-attribute of a FeedItem. Should be used by all Classes + * instead of the setters of FeedItem. + */ + public void markItemRead(Context context, FeedItem item, boolean read) { + item.read = read; + setFeedItem(context, item); + if (read == true) { + unreadItems.remove(item); + } else { + unreadItems.add(item); + } + } + public void refreshAllFeeds(Context context) { Log.d(TAG, "Refreshing all feeds."); for (Feed feed : feeds) { @@ -86,8 +106,8 @@ public class FeedManager { setFeedItem(context, item); } } - - /** Adds a new Feeditem if its not in the list */ +/* TODO Decide if still useful + public void addFeedItem(Context context, FeedItem item) { PodDBAdapter adapter = new PodDBAdapter(context); // Search list for feeditem @@ -104,7 +124,7 @@ public class FeedManager { item.id = adapter.setFeedItem(item); } } - +*/ public void updateFeed(Context context, Feed newFeed) { // Look up feed in the feedslist Feed savedFeed = searchFeedByLink(newFeed.getLink()); @@ -113,7 +133,7 @@ public class FeedManager { "Found no existing Feed with title " + newFeed.getTitle() + ". Adding as new one."); // Add a new Feed - newFeed.getItems().get(0).setRead(false); + markItemRead(context, newFeed.getItems().get(0), false); addNewFeed(context, newFeed); } else { Log.d(TAG, "Feed with title " + newFeed.getTitle() @@ -125,6 +145,7 @@ public class FeedManager { if (oldItem == null) { // item is new savedFeed.getItems().add(item); + markItemRead(context, item, false); } } savedFeed.setLastUpdate(newFeed.getLastUpdate()); @@ -293,10 +314,12 @@ public class FeedManager { item.setMedia(adapter.getFeedMedia(itemlistCursor .getLong(itemlistCursor .getColumnIndex(PodDBAdapter.KEY_MEDIA)), item)); - item.setRead((itemlistCursor.getInt(itemlistCursor + item.read = (itemlistCursor.getInt(itemlistCursor .getColumnIndex(PodDBAdapter.KEY_READ)) > 0) ? true - : false); - + : false; + if (!item.read) { + unreadItems.add(item); + } items.add(item); } while (itemlistCursor.moveToNext()); } @@ -308,4 +331,10 @@ public class FeedManager { return feeds; } + public ArrayList<FeedItem> getUnreadItems() { + return unreadItems; + } + + + } |