summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/util/menuhandler
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/util/menuhandler')
-rw-r--r--src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java30
-rw-r--r--src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java8
2 files changed, 21 insertions, 17 deletions
diff --git a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
index 551b0fd08..aa029f672 100644
--- a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
+++ b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
@@ -7,12 +7,16 @@ import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.FlattrClickWorker;
import de.danoeh.antennapod.feed.FeedItem;
-import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.service.PlaybackService;
+import de.danoeh.antennapod.storage.DBTasks;
+import de.danoeh.antennapod.storage.DBWriter;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.storage.DownloadRequester;
+import de.danoeh.antennapod.util.QueueAccess;
import de.danoeh.antennapod.util.ShareUtils;
+import java.util.List;
+
/** Handles interactions with the FeedItemMenu. */
public class FeedItemMenuHandler {
private FeedItemMenuHandler() {
@@ -45,11 +49,12 @@ public class FeedItemMenuHandler {
* True if MenuItems that let the user share information about
* the FeedItem and visit its website should be set visible. This
* parameter should be set to false if the menu space is limited.
+ * @param queueAccess
+ * Used for testing if the queue contains the selected item
* @return Always returns true
* */
public static boolean onPrepareMenu(MenuInterface mi,
- FeedItem selectedItem, boolean showExtendedMenu) {
- FeedManager manager = FeedManager.getInstance();
+ FeedItem selectedItem, boolean showExtendedMenu, QueueAccess queueAccess) {
DownloadRequester requester = DownloadRequester.getInstance();
boolean hasMedia = selectedItem.getMedia() != null;
boolean downloaded = hasMedia && selectedItem.getMedia().isDownloaded();
@@ -79,7 +84,7 @@ public class FeedItemMenuHandler {
mi.setItemVisibility(R.id.cancel_download_item, false);
}
- boolean isInQueue = manager.isInQueue(selectedItem);
+ boolean isInQueue = queueAccess.contains(selectedItem.getId());
if (!isInQueue || isPlaying) {
mi.setItemVisibility(R.id.remove_from_queue_item, false);
}
@@ -111,39 +116,38 @@ public class FeedItemMenuHandler {
public static boolean onMenuItemClicked(Context context, int menuItemId,
FeedItem selectedItem) throws DownloadRequestException {
DownloadRequester requester = DownloadRequester.getInstance();
- FeedManager manager = FeedManager.getInstance();
switch (menuItemId) {
case R.id.skip_episode_item:
context.sendBroadcast(new Intent(
PlaybackService.ACTION_SKIP_CURRENT_EPISODE));
break;
case R.id.download_item:
- manager.downloadFeedItem(context, selectedItem);
+ DBTasks.downloadFeedItems(context, selectedItem);
break;
case R.id.play_item:
- manager.playMedia(context, selectedItem.getMedia(), true, true,
+ DBTasks.playMedia(context, selectedItem.getMedia(), true, true,
false);
break;
case R.id.remove_item:
- manager.deleteFeedMedia(context, selectedItem.getMedia());
+ DBWriter.deleteFeedMediaOfItem(context, selectedItem.getId());
break;
case R.id.cancel_download_item:
requester.cancelDownload(context, selectedItem.getMedia());
break;
case R.id.mark_read_item:
- manager.markItemRead(context, selectedItem, true, true);
+ DBWriter.markItemRead(context, selectedItem, true, true);
break;
case R.id.mark_unread_item:
- manager.markItemRead(context, selectedItem, false, true);
+ DBWriter.markItemRead(context, selectedItem, false, true);
break;
case R.id.add_to_queue_item:
- manager.addQueueItem(context, selectedItem);
+ DBWriter.addQueueItem(context, selectedItem.getId());
break;
case R.id.remove_from_queue_item:
- manager.removeQueueItem(context, selectedItem, true);
+ DBWriter.removeQueueItem(context, selectedItem.getId(), true);
break;
case R.id.stream_item:
- manager.playMedia(context, selectedItem.getMedia(), true, true,
+ DBTasks.playMedia(context, selectedItem.getMedia(), true, true,
true);
break;
case R.id.visit_website_item:
diff --git a/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java b/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
index 99bedf272..843607617 100644
--- a/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
+++ b/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
@@ -13,8 +13,9 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.FeedInfoActivity;
import de.danoeh.antennapod.asynctask.FlattrClickWorker;
import de.danoeh.antennapod.feed.Feed;
-import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.service.download.DownloadService;
+import de.danoeh.antennapod.storage.DBTasks;
+import de.danoeh.antennapod.storage.DBWriter;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.storage.DownloadRequester;
import de.danoeh.antennapod.util.ShareUtils;
@@ -55,7 +56,6 @@ public class FeedMenuHandler {
*/
public static boolean onOptionsItemClicked(Context context, MenuItem item,
Feed selectedFeed) throws DownloadRequestException {
- FeedManager manager = FeedManager.getInstance();
switch (item.getItemId()) {
case R.id.show_info_item:
Intent startIntent = new Intent(context, FeedInfoActivity.class);
@@ -64,10 +64,10 @@ public class FeedMenuHandler {
context.startActivity(startIntent);
break;
case R.id.refresh_item:
- manager.refreshFeed(context, selectedFeed);
+ DBTasks.refreshFeed(context, selectedFeed);
break;
case R.id.mark_all_read_item:
- manager.markFeedRead(context, selectedFeed);
+ DBWriter.markFeedRead(context, selectedFeed.getId());
break;
case R.id.visit_website_item:
Uri uri = Uri.parse(selectedFeed.getLink());