summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
diff options
context:
space:
mode:
authorGitStart <1501599+gitstart@users.noreply.github.com>2023-02-02 07:04:07 +0800
committerGitHub <noreply@github.com>2023-02-02 00:04:07 +0100
commitf9e344e2154bb43fa25fabaf4c05114b15d10456 (patch)
tree14083ed47e3b644f65df0257c303b711d4ad1392 /app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
parente261514c5ba18a028ced8cf68c04c4f485409902 (diff)
downloadAntennaPod-f9e344e2154bb43fa25fabaf4c05114b15d10456.zip
Add long press menu to search results in subscriptions list (#6267)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java30
1 files changed, 25 insertions, 5 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
index 77fec7a8f..d2aa35549 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
@@ -54,6 +54,9 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.Collections;
import java.util.List;
+import de.danoeh.antennapod.menuhandler.FeedMenuHandler;
+import de.danoeh.antennapod.event.FeedListUpdateEvent;
+
/**
* Performs a search operation on all feeds or one specific feed and displays the search result.
@@ -132,6 +135,7 @@ public class SearchFragment extends Fragment {
recyclerView = layout.findViewById(R.id.recyclerView);
recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool());
+ registerForContextMenu(recyclerView);
adapter = new EpisodeItemListAdapter((MainActivity) getActivity()) {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
@@ -146,7 +150,14 @@ public class SearchFragment extends Fragment {
LinearLayoutManager layoutManagerFeeds = new LinearLayoutManager(getActivity());
layoutManagerFeeds.setOrientation(RecyclerView.HORIZONTAL);
recyclerViewFeeds.setLayoutManager(layoutManagerFeeds);
- adapterFeeds = new HorizontalFeedListAdapter((MainActivity) getActivity());
+ adapterFeeds = new HorizontalFeedListAdapter((MainActivity) getActivity()) {
+ @Override
+ public void onCreateContextMenu(ContextMenu contextMenu, View view,
+ ContextMenu.ContextMenuInfo contextMenuInfo) {
+ super.onCreateContextMenu(contextMenu, view, contextMenuInfo);
+ MenuItemUtils.setOnClickListeners(contextMenu, SearchFragment.this::onContextItemSelected);
+ }
+ };
recyclerViewFeeds.setAdapter(adapterFeeds);
emptyViewHandler = new EmptyViewHandler(getContext());
@@ -241,12 +252,21 @@ public class SearchFragment extends Fragment {
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
+ Feed selectedFeedItem = adapterFeeds.getLongPressedItem();
+ if (selectedFeedItem != null
+ && FeedMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedFeedItem, () -> { })) {
+ return true;
+ }
FeedItem selectedItem = adapter.getLongPressedItem();
- if (selectedItem == null) {
- Log.i(TAG, "Selected item at current position was null, ignoring selection");
- return super.onContextItemSelected(item);
+ if (selectedItem != null && FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedItem)) {
+ return true;
}
- return FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedItem);
+ return super.onContextItemSelected(item);
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onFeedListChanged(FeedListUpdateEvent event) {
+ search();
}
@Subscribe(threadMode = ThreadMode.MAIN)