Fix missing delete item for local feeds (#7573)

Also fix search fragment always showing all multi-select options
This commit is contained in:
ByteHamster 2024-12-27 10:56:25 +01:00 committed by GitHub
parent 35241b64fd
commit 1f56a9eecc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 3 deletions

View File

@ -103,7 +103,8 @@ public class EpisodeMultiSelectActionHandler {
private void deleteChecked(List<FeedItem> 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());
}

View File

@ -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);

View File

@ -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);