summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java b/app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java
new file mode 100644
index 000000000..dbdc3126b
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/ui/swipeactions/RemoveFromQueueSwipeAction.java
@@ -0,0 +1,57 @@
+package de.danoeh.antennapod.ui.swipeactions;
+
+import android.content.Context;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.material.snackbar.Snackbar;
+
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.storage.database.DBReader;
+import de.danoeh.antennapod.storage.database.DBWriter;
+import de.danoeh.antennapod.model.feed.FeedItem;
+import de.danoeh.antennapod.model.feed.FeedItemFilter;
+
+public class RemoveFromQueueSwipeAction implements SwipeAction {
+
+ @Override
+ public String getId() {
+ return REMOVE_FROM_QUEUE;
+ }
+
+ @Override
+ public int getActionIcon() {
+ return R.drawable.ic_playlist_remove;
+ }
+
+ @Override
+ public int getActionColor() {
+ return R.attr.colorAccent;
+ }
+
+ @Override
+ public String getTitle(Context context) {
+ return context.getString(R.string.remove_from_queue_label);
+ }
+
+ @Override
+ public void performAction(FeedItem item, Fragment fragment, FeedItemFilter filter) {
+ int position = DBReader.getQueueIDList().indexOf(item.getId());
+
+ DBWriter.removeQueueItem(fragment.requireActivity(), true, item);
+
+ if (willRemove(filter, item)) {
+ ((MainActivity) fragment.requireActivity()).showSnackbarAbovePlayer(
+ fragment.getResources().getQuantityString(R.plurals.removed_from_queue_batch_label, 1, 1),
+ Snackbar.LENGTH_LONG)
+ .setAction(fragment.getString(R.string.undo), v ->
+ DBWriter.addQueueItemAt(fragment.requireActivity(), item.getId(), position, false));
+ }
+ }
+
+ @Override
+ public boolean willRemove(FeedItemFilter filter, FeedItem item) {
+ return filter.showQueued || filter.showNotQueued;
+ }
+}