summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
index de4cec8fe..a72b32497 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -12,10 +12,12 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.snackbar.Snackbar;
+import java.util.Arrays;
+
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
-import de.danoeh.antennapod.storage.preferences.UserPreferences;
+import de.danoeh.antennapod.core.util.FeedUtil;
import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
import de.danoeh.antennapod.core.service.playback.PlaybackServiceInterface;
import de.danoeh.antennapod.core.storage.DBWriter;
@@ -29,6 +31,7 @@ import de.danoeh.antennapod.dialog.ShareDialog;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.view.LocalDeleteModal;
/**
* Handles interactions with the FeedItemMenu.
@@ -56,6 +59,7 @@ public class FeedItemMenuHandler {
final boolean isPlaying = hasMedia && PlaybackStatus.isPlaying(selectedItem.getMedia());
final boolean isInQueue = selectedItem.isTagged(FeedItem.TAG_QUEUE);
final boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists();
+ final boolean isLocalFile = hasMedia && selectedItem.getFeed().isLocalFeed();
final boolean isFavorite = selectedItem.isTagged(FeedItem.TAG_FAVORITE);
setItemVisibility(menu, R.id.skip_episode_item, isPlaying);
@@ -80,7 +84,7 @@ public class FeedItemMenuHandler {
setItemVisibility(menu, R.id.add_to_favorites_item, !isFavorite);
setItemVisibility(menu, R.id.remove_from_favorites_item, isFavorite);
- setItemVisibility(menu, R.id.remove_item, fileDownloaded);
+ setItemVisibility(menu, R.id.remove_item, fileDownloaded || isLocalFile);
return true;
}
@@ -148,7 +152,8 @@ public class FeedItemMenuHandler {
if (menuItemId == R.id.skip_episode_item) {
context.sendBroadcast(MediaButtonReceiver.createIntent(context, KeyEvent.KEYCODE_MEDIA_NEXT));
} else if (menuItemId == R.id.remove_item) {
- DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId());
+ LocalDeleteModal.showLocalFeedDeleteWarningIfNecessary(context, Arrays.asList(selectedItem),
+ () -> DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId()));
} else if (menuItemId == R.id.remove_inbox_item) {
removeNewFlagWithUndo(fragment, selectedItem);
} else if (menuItemId == R.id.mark_read_item) {
@@ -225,7 +230,8 @@ public class FeedItemMenuHandler {
final Handler h = new Handler(fragment.requireContext().getMainLooper());
final Runnable r = () -> {
FeedMedia media = item.getMedia();
- if (media != null && FeedItemUtil.hasAlmostEnded(media) && UserPreferences.isAutoDelete()) {
+ boolean shouldAutoDelete = FeedUtil.shouldAutoDeleteItemsOnThatFeed(item.getFeed());
+ if (media != null && FeedItemUtil.hasAlmostEnded(media) && shouldAutoDelete) {
DBWriter.deleteFeedMediaOfItem(fragment.requireContext(), media.getId());
}
};