From a1f81d4144bacc01ed7f65efc3daaa063c8f32d6 Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Thu, 29 Nov 2018 21:23:36 +0100 Subject: Add delete option to episode's context menu This PR makes following changes: - Adds delete option to episode's context menus in queue and feed list - Adds a storage preference that allows episodes to be automatically removed from queue when they are deleted (by clicking delete in context menu, or pressing trash can icon on `Completed` tab of `Downloads` page) - Adds a test for the aforementioned preference --- .../de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 4 ++++ .../de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index 7c28ba21f..eb3283400 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -17,6 +17,7 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.DownloadedEpisodesListAdapter; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.FeedItemUtil; @@ -169,6 +170,9 @@ public class CompletedDownloadsFragment extends ListFragment { @Override public void onFeedItemSecondaryAction(FeedItem item) { DBWriter.deleteFeedMediaOfItem(getActivity(), item.getMedia().getId()); + if (UserPreferences.shouldDeleteRemoveFromQueue()) { + DBWriter.removeQueueItem(getActivity(), item, false); + } } }; 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 ffdfa9516..c8705185b 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java @@ -101,7 +101,8 @@ public class FeedItemMenuHandler { mi.setItemVisibility(R.id.share_download_url_with_position_item, false); } - mi.setItemVisibility(R.id.share_file, hasMedia && selectedItem.getMedia().fileExists()); + boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists(); + mi.setItemVisibility(R.id.share_file, fileDownloaded); if (selectedItem.isPlayed()) { mi.setItemVisibility(R.id.mark_read_item, false); @@ -130,6 +131,8 @@ public class FeedItemMenuHandler { mi.setItemVisibility(R.id.add_to_favorites_item, !isFavorite); mi.setItemVisibility(R.id.remove_from_favorites_item, isFavorite); + mi.setItemVisibility(R.id.remove_item, fileDownloaded); + return true; } @@ -162,6 +165,9 @@ public class FeedItemMenuHandler { break; case R.id.remove_item: DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId()); + if (UserPreferences.shouldDeleteRemoveFromQueue()) { + DBWriter.removeQueueItem(context, selectedItem, false); + } break; case R.id.mark_read_item: selectedItem.setPlayed(true); -- cgit v1.2.3 From 9c43438cbe5f1635453b748197aa7ce58e50d3fb Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Sun, 2 Dec 2018 00:13:30 +0100 Subject: Make "Delete Removes From Queue" work consistently for all cases --- .../java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java | 4 ++++ app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java | 3 +++ 2 files changed, 7 insertions(+) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index 07a64cde8..64b6f8bf1 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -26,6 +26,7 @@ import java.util.Map; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequestException; @@ -449,6 +450,9 @@ public class EpisodesApplyActionFragment extends Fragment { FeedItem episode = idMap.get(id); if(episode.hasMedia()) { DBWriter.deleteFeedMediaOfItem(getActivity(), episode.getMedia().getId()); + if (UserPreferences.shouldDeleteRemoveFromQueue()) { + DBWriter.removeQueueItem(getActivity(), episode, false); + } } } close(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index c1d9bb9ab..4cd9b5f4b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -248,6 +248,9 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { ((MainActivity) getActivity()).dismissChildFragment(); } else { DBWriter.deleteFeedMediaOfItem(getActivity(), media.getId()); + if (UserPreferences.shouldDeleteRemoveFromQueue()) { + DBWriter.removeQueueItem(getActivity(), item, false); + } } } else if (item.getLink() != null) { Uri uri = Uri.parse(item.getLink()); -- cgit v1.2.3 From b53a3c2ecf32a2bbfaa33b886e31c04f3e0cb8ba Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Sun, 2 Dec 2018 23:17:56 +0100 Subject: Move "Delete Removes from Queue" logic to DBWriter --- .../java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java | 4 ---- .../de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 4 ---- app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java | 3 --- .../java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java | 3 --- 4 files changed, 14 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index 64b6f8bf1..07a64cde8 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -26,7 +26,6 @@ import java.util.Map; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.core.feed.FeedItem; -import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequestException; @@ -450,9 +449,6 @@ public class EpisodesApplyActionFragment extends Fragment { FeedItem episode = idMap.get(id); if(episode.hasMedia()) { DBWriter.deleteFeedMediaOfItem(getActivity(), episode.getMedia().getId()); - if (UserPreferences.shouldDeleteRemoveFromQueue()) { - DBWriter.removeQueueItem(getActivity(), episode, false); - } } } close(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index eb3283400..7c28ba21f 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -17,7 +17,6 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.DownloadedEpisodesListAdapter; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; -import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.FeedItemUtil; @@ -170,9 +169,6 @@ public class CompletedDownloadsFragment extends ListFragment { @Override public void onFeedItemSecondaryAction(FeedItem item) { DBWriter.deleteFeedMediaOfItem(getActivity(), item.getMedia().getId()); - if (UserPreferences.shouldDeleteRemoveFromQueue()) { - DBWriter.removeQueueItem(getActivity(), item, false); - } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index 4cd9b5f4b..c1d9bb9ab 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -248,9 +248,6 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { ((MainActivity) getActivity()).dismissChildFragment(); } else { DBWriter.deleteFeedMediaOfItem(getActivity(), media.getId()); - if (UserPreferences.shouldDeleteRemoveFromQueue()) { - DBWriter.removeQueueItem(getActivity(), item, false); - } } } else if (item.getLink() != null) { Uri uri = Uri.parse(item.getLink()); 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 c8705185b..321b9c7bb 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java @@ -165,9 +165,6 @@ public class FeedItemMenuHandler { break; case R.id.remove_item: DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId()); - if (UserPreferences.shouldDeleteRemoveFromQueue()) { - DBWriter.removeQueueItem(context, selectedItem, false); - } break; case R.id.mark_read_item: selectedItem.setPlayed(true); -- cgit v1.2.3