mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-12-01 12:31:45 +00:00
Support cancelling downloads using multi-select (#8003)
This commit is contained in:
committed by
GitHub
parent
31026dc0f8
commit
6f7f9b2914
@ -108,10 +108,15 @@ public class EpisodeMultiSelectActionHandler {
|
|||||||
private void deleteChecked(List<FeedItem> items) {
|
private void deleteChecked(List<FeedItem> items) {
|
||||||
int countHasMedia = 0;
|
int countHasMedia = 0;
|
||||||
for (FeedItem feedItem : items) {
|
for (FeedItem feedItem : items) {
|
||||||
if ((feedItem.hasMedia() && feedItem.getMedia().isDownloaded())
|
if (!feedItem.hasMedia()) {
|
||||||
|| feedItem.getFeed().isLocalFeed()) {
|
continue;
|
||||||
|
}
|
||||||
|
if (feedItem.getMedia().isDownloaded() || feedItem.getFeed().isLocalFeed()) {
|
||||||
countHasMedia++;
|
countHasMedia++;
|
||||||
DBWriter.deleteFeedMediaOfItem(activity, feedItem.getMedia());
|
DBWriter.deleteFeedMediaOfItem(activity, feedItem.getMedia());
|
||||||
|
} else if (DownloadServiceInterface.get().isDownloadingEpisode(feedItem.getMedia().getDownloadUrl())) {
|
||||||
|
countHasMedia++;
|
||||||
|
DownloadServiceInterface.get().cancel(activity, feedItem.getMedia());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
showMessage(R.plurals.deleted_episode_message, countHasMedia);
|
showMessage(R.plurals.deleted_episode_message, countHasMedia);
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import java.util.List;
|
|||||||
import de.danoeh.antennapod.R;
|
import de.danoeh.antennapod.R;
|
||||||
import de.danoeh.antennapod.event.MessageEvent;
|
import de.danoeh.antennapod.event.MessageEvent;
|
||||||
import de.danoeh.antennapod.model.feed.Feed;
|
import de.danoeh.antennapod.model.feed.Feed;
|
||||||
|
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||||
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueue;
|
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueue;
|
||||||
import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
|
import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
|
||||||
import de.danoeh.antennapod.playback.service.PlaybackServiceInterface;
|
import de.danoeh.antennapod.playback.service.PlaybackServiceInterface;
|
||||||
@ -75,7 +76,9 @@ public class FeedItemMenuHandler {
|
|||||||
boolean canShowSocialInteract = false;
|
boolean canShowSocialInteract = false;
|
||||||
|
|
||||||
for (FeedItem item : selectedItems) {
|
for (FeedItem item : selectedItems) {
|
||||||
boolean hasMedia = item.getMedia() != null;
|
final boolean hasMedia = item.getMedia() != null;
|
||||||
|
final boolean isDownloading = hasMedia
|
||||||
|
&& DownloadServiceInterface.get().isDownloadingEpisode(item.getMedia().getDownloadUrl());
|
||||||
canSkip |= hasMedia && PlaybackStatus.isPlaying(item.getMedia());
|
canSkip |= hasMedia && PlaybackStatus.isPlaying(item.getMedia());
|
||||||
canRemoveFromQueue |= item.isTagged(FeedItem.TAG_QUEUE);
|
canRemoveFromQueue |= item.isTagged(FeedItem.TAG_QUEUE);
|
||||||
canAddToQueue |= hasMedia && !item.isTagged(FeedItem.TAG_QUEUE);
|
canAddToQueue |= hasMedia && !item.isTagged(FeedItem.TAG_QUEUE);
|
||||||
@ -85,8 +88,9 @@ public class FeedItemMenuHandler {
|
|||||||
canMarkPlayed |= !item.isPlayed();
|
canMarkPlayed |= !item.isPlayed();
|
||||||
canMarkUnplayed |= item.isPlayed();
|
canMarkUnplayed |= item.isPlayed();
|
||||||
canResetPosition |= hasMedia && item.getMedia().getPosition() != 0;
|
canResetPosition |= hasMedia && item.getMedia().getPosition() != 0;
|
||||||
canDelete |= (hasMedia && item.getMedia().isDownloaded()) || item.getFeed().isLocalFeed();
|
canDelete |= item.getFeed().isLocalFeed() || (hasMedia && item.getMedia().isDownloaded()) || isDownloading;
|
||||||
canDownload |= hasMedia && !item.getMedia().isDownloaded() && !item.getFeed().isLocalFeed();
|
canDownload |= hasMedia && !item.getMedia().isDownloaded()
|
||||||
|
&& !item.getFeed().isLocalFeed() && !isDownloading;
|
||||||
canAddFavorite |= !item.isTagged(FeedItem.TAG_FAVORITE);
|
canAddFavorite |= !item.isTagged(FeedItem.TAG_FAVORITE);
|
||||||
canRemoveFavorite |= item.isTagged(FeedItem.TAG_FAVORITE);
|
canRemoveFavorite |= item.isTagged(FeedItem.TAG_FAVORITE);
|
||||||
canShowTranscript |= item.hasTranscript();
|
canShowTranscript |= item.hasTranscript();
|
||||||
|
|||||||
Reference in New Issue
Block a user