summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/feed
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-06-20 16:02:05 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-06-20 16:02:05 +0200
commit8f9344fbe74a6922f949ddffbc1779f539fcef3f (patch)
tree9791054abb739b72a5e3db19b99d03ff8cf06f8e /src/de/podfetcher/feed
parent2288beb247c6dd4301a4d9814ef5c446e5ebd5c2 (diff)
downloadAntennaPod-8f9344fbe74a6922f949ddffbc1779f539fcef3f.zip
Implemented Queue for FeedItems
Diffstat (limited to 'src/de/podfetcher/feed')
-rw-r--r--src/de/podfetcher/feed/FeedManager.java38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/de/podfetcher/feed/FeedManager.java b/src/de/podfetcher/feed/FeedManager.java
index cdcde55c8..506b62efc 100644
--- a/src/de/podfetcher/feed/FeedManager.java
+++ b/src/de/podfetcher/feed/FeedManager.java
@@ -34,6 +34,9 @@ public class FeedManager {
/** Contains completed Download status entries */
private ArrayList<DownloadStatus> downloadLog;
+
+ /** Contains the queue of items to be played. */
+ private ArrayList<FeedItem> queue;
private DownloadRequester requester;
@@ -43,6 +46,7 @@ public class FeedManager {
unreadItems = new ArrayList<FeedItem>();
requester = DownloadRequester.getInstance();
downloadLog = new ArrayList<DownloadStatus>();
+ queue = new ArrayList<FeedItem>();
}
public static FeedManager getInstance() {
@@ -141,6 +145,24 @@ public class FeedManager {
}
return adapter.setDownloadStatus(status);
}
+
+ public void addQueueItem(Context context, FeedItem item) {
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ queue.add(item);
+ adapter.setQueue(queue);
+ }
+
+ public void removeQueueItem(Context context, FeedItem item) {
+ boolean removed = queue.remove(item);
+ if (removed) {
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.setQueue(queue);
+ }
+ }
+
+ public boolean isInQueue(FeedItem item) {
+ return queue.contains(item);
+ }
private void addNewFeed(Context context, Feed feed) {
feeds.add(feed);
@@ -300,7 +322,6 @@ public class FeedManager {
/** Reads the database */
public void loadDBData(Context context) {
- PodDBAdapter adapter = new PodDBAdapter(context);
updateArrays(context);
}
@@ -309,6 +330,7 @@ public class FeedManager {
categories.clear();
extractFeedlistFromCursor(context);
extractDownloadLogFromCursor(context);
+ extractQueueFromCursor(context);
}
private void extractFeedlistFromCursor(Context context) {
@@ -423,6 +445,20 @@ public class FeedManager {
} while (logCursor.moveToNext());
}
}
+
+ private void extractQueueFromCursor(Context context) {
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.open();
+ Cursor cursor = adapter.getQueueCursor();
+ if (cursor.moveToFirst()) {
+ do {
+ int index = cursor.getInt(cursor.getColumnIndex(PodDBAdapter.KEY_ID));
+ Feed feed = getFeed(cursor.getColumnIndex(PodDBAdapter.KEY_FEED));
+ FeedItem item = getFeedItem(cursor.getColumnIndex(PodDBAdapter.KEY_FEEDITEM), feed);
+ queue.add(index, item);
+ } while (cursor.moveToNext());
+ }
+ }
public ArrayList<Feed> getFeeds() {
return feeds;