From 1f56a9eeccfbe271d22189738f710843393a1344 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 27 Dec 2024 10:56:25 +0100 Subject: [PATCH] Fix missing delete item for local feeds (#7573) Also fix search fragment always showing all multi-select options --- .../episodeslist/EpisodeMultiSelectActionHandler.java | 3 ++- .../ui/episodeslist/FeedItemMenuHandler.java | 2 +- .../de/danoeh/antennapod/ui/screen/SearchFragment.java | 10 +++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/EpisodeMultiSelectActionHandler.java b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/EpisodeMultiSelectActionHandler.java index 07f1a8cbc..cc098053b 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/EpisodeMultiSelectActionHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/EpisodeMultiSelectActionHandler.java @@ -103,7 +103,8 @@ public class EpisodeMultiSelectActionHandler { private void deleteChecked(List items) { int countHasMedia = 0; for (FeedItem feedItem : items) { - if (feedItem.hasMedia() && feedItem.getMedia().isDownloaded()) { + if ((feedItem.hasMedia() && feedItem.getMedia().isDownloaded()) + || feedItem.getFeed().isLocalFeed()) { countHasMedia++; DBWriter.deleteFeedMediaOfItem(activity, feedItem.getMedia()); } diff --git a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java index 4f46faf56..884472b8d 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java @@ -83,7 +83,7 @@ public class FeedItemMenuHandler { canMarkPlayed |= !item.isPlayed(); canMarkUnplayed |= item.isPlayed(); canResetPosition |= hasMedia && item.getMedia().getPosition() != 0; - canDelete |= hasMedia && item.getMedia().isDownloaded(); + canDelete |= (hasMedia && item.getMedia().isDownloaded()) || item.getFeed().isLocalFeed(); canDownload |= hasMedia && !item.getMedia().isDownloaded() && !item.getFeed().isLocalFeed(); canAddFavorite |= !item.isTagged(FeedItem.TAG_FAVORITE); canRemoveFavorite |= item.isTagged(FeedItem.TAG_FAVORITE); diff --git a/app/src/main/java/de/danoeh/antennapod/ui/screen/SearchFragment.java b/app/src/main/java/de/danoeh/antennapod/ui/screen/SearchFragment.java index 98d308d76..f9a9a4e81 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/screen/SearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/screen/SearchFragment.java @@ -145,7 +145,7 @@ public class SearchFragment extends Fragment implements EpisodeItemListAdapter.O floatingSelectMenu = layout.findViewById(R.id.floatingSelectMenu); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); registerForContextMenu(recyclerView); - adapter = new EpisodeItemListAdapter((MainActivity) getActivity()) { + adapter = new EpisodeItemListAdapter(getActivity()) { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); @@ -154,6 +154,14 @@ public class SearchFragment extends Fragment implements EpisodeItemListAdapter.O } MenuItemUtils.setOnClickListeners(menu, SearchFragment.this::onContextItemSelected); } + + @Override + protected void onSelectedItemsUpdated() { + super.onSelectedItemsUpdated(); + FeedItemMenuHandler.onPrepareMenu(floatingSelectMenu.getMenu(), getSelectedItems(), + R.id.add_to_queue_item, R.id.remove_inbox_item); + floatingSelectMenu.updateItemVisibility(); + } }; adapter.setOnSelectModeListener(this); recyclerView.setAdapter(adapter);