Fix long-pressing subscription on home screen (#6419)

This commit is contained in:
ByteHamster 2023-04-07 14:25:51 +02:00 committed by GitHub
parent a828660b44
commit da9bb8d578
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -14,9 +14,12 @@ import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
import de.danoeh.antennapod.adapter.EpisodeItemListAdapter;
import de.danoeh.antennapod.adapter.HorizontalFeedListAdapter;
import de.danoeh.antennapod.adapter.HorizontalItemListAdapter;
import de.danoeh.antennapod.databinding.HomeSectionBinding;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
import de.danoeh.antennapod.menuhandler.FeedMenuHandler;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
import org.greenrobot.eventbus.EventBus;
@ -58,6 +61,12 @@ public abstract class HomeSection extends Fragment implements View.OnCreateConte
// Apparently, none of the visibility check method works reliably on its own, so we just use all.
return false;
}
if (viewBinding.recyclerView.getAdapter() instanceof HorizontalFeedListAdapter) {
HorizontalFeedListAdapter adapter = (HorizontalFeedListAdapter) viewBinding.recyclerView.getAdapter();
Feed selectedFeed = adapter.getLongPressedItem();
return selectedFeed != null
&& FeedMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedFeed, () -> { });
}
FeedItem longPressedItem;
if (viewBinding.recyclerView.getAdapter() instanceof EpisodeItemListAdapter) {
EpisodeItemListAdapter adapter = (EpisodeItemListAdapter) viewBinding.recyclerView.getAdapter();

View File

@ -2,6 +2,7 @@ package de.danoeh.antennapod.ui.home.sections;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -12,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.adapter.HorizontalFeedListAdapter;
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.event.FeedListUpdateEvent;
import de.danoeh.antennapod.fragment.SubscriptionFragment;
@ -41,7 +43,14 @@ public class SubscriptionsSection extends HomeSection {
final View view = super.onCreateView(inflater, container, savedInstanceState);
viewBinding.recyclerView.setLayoutManager(
new LinearLayoutManager(getActivity(), RecyclerView.HORIZONTAL, false));
listAdapter = new HorizontalFeedListAdapter((MainActivity) getActivity());
listAdapter = new HorizontalFeedListAdapter((MainActivity) getActivity()) {
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view,
ContextMenu.ContextMenuInfo contextMenuInfo) {
super.onCreateContextMenu(contextMenu, view, contextMenuInfo);
MenuItemUtils.setOnClickListeners(contextMenu, SubscriptionsSection.this::onContextItemSelected);
}
};
listAdapter.setDummyViews(NUM_FEEDS);
viewBinding.recyclerView.setAdapter(listAdapter);
int paddingHorizontal = (int) (12 * getResources().getDisplayMetrics().density);