diff options
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.java | 57 |
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; + } +} |