diff options
author | Ezequiel <salaseze@gmail.com> | 2020-10-13 17:05:26 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-13 22:05:26 +0200 |
commit | cb1af5dbacc3ae1fd5ca55d2e2ff4a4af0b29539 (patch) | |
tree | 1ead2e7770b4865577e475ca2b97770fa570deec /app/src/main/java/de/danoeh | |
parent | e5e149a9dfd5cbcd75e060e379938388047e7ef7 (diff) | |
download | AntennaPod-cb1af5dbacc3ae1fd5ca55d2e2ff4a4af0b29539.zip |
Add chip when searching for specific feed (#4522)
Diffstat (limited to 'app/src/main/java/de/danoeh')
5 files changed, 24 insertions, 6 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java index c6545808f..62400d81d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java @@ -130,7 +130,7 @@ public abstract class EpisodesListFragment extends Fragment { } super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.episodes, menu); - MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), 0); + MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), 0, ""); isUpdatingFeeds = MenuItemUtils.updateRefreshMenuItem(menu, R.id.refresh_item, updateRefreshMenuItemChecker); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java index f8c80017b..cef5e13e7 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java @@ -252,7 +252,11 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem optionsMenu = menu; FeedMenuHandler.onCreateOptionsMenu(inflater, menu); iconTintManager.updateTint(); - MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), feedID); + if (feed != null) { + MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), feedID, feed.getTitle()); + } else { + MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), feedID, ""); + } if (feed == null || feed.getLink() == null) { menu.findItem(R.id.share_link_item).setVisible(false); menu.findItem(R.id.visit_website_item).setVisible(false); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 283b4b466..122524b48 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -246,7 +246,7 @@ public class QueueFragment extends Fragment { super.onCreateOptionsMenu(menu, inflater); if (queue != null) { inflater.inflate(R.menu.queue, menu); - MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), 0); + MenuItemUtils.setupSearchItem(menu, (MainActivity) getActivity(), 0, ""); MenuItemUtils.refreshLockItem(getActivity(), menu); // Show Lock Item only if queue is sorted manually 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 c96f7d8fb..2061a8ba4 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java @@ -17,6 +17,9 @@ import androidx.appcompat.widget.SearchView; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.chip.Chip; + import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.EpisodeItemListAdapter; @@ -53,6 +56,7 @@ public class SearchFragment extends Fragment { private static final String TAG = "SearchFragment"; private static final String ARG_QUERY = "query"; private static final String ARG_FEED = "feed"; + private static final String ARG_FEED_NAME = "feedName"; private EpisodeItemListAdapter adapter; private FeedSearchResultAdapter adapterFeeds; @@ -61,6 +65,7 @@ public class SearchFragment extends Fragment { private EmptyViewHandler emptyViewHandler; private EpisodeItemListRecyclerView recyclerView; private List<FeedItem> results; + private Chip chip; /** * Create a new SearchFragment that searches all feeds. @@ -80,9 +85,10 @@ public class SearchFragment extends Fragment { /** * Create a new SearchFragment that searches one specific feed. */ - public static SearchFragment newInstance(String query, long feed) { + public static SearchFragment newInstance(String query, long feed, String feedTitle) { SearchFragment fragment = newInstance(query); fragment.getArguments().putLong(ARG_FEED, feed); + fragment.getArguments().putString(ARG_FEED_NAME, feedTitle); return fragment; } @@ -133,6 +139,12 @@ public class SearchFragment extends Fragment { emptyViewHandler.setIcon(R.attr.action_search); emptyViewHandler.setTitle(R.string.search_status_no_results); EventBus.getDefault().register(this); + + chip = layout.findViewById(R.id.feed_title_chip); + chip.setOnCloseIconClickListener(v -> { + getArguments().putLong(ARG_FEED, 0); + search(); + }); return layout; } @@ -262,8 +274,10 @@ public class SearchFragment extends Fragment { adapter.updateItems(results.first); if (getArguments().getLong(ARG_FEED, 0) == 0) { adapterFeeds.updateData(results.second); + chip.setVisibility(View.GONE); } else { adapterFeeds.updateData(Collections.emptyList()); + chip.setText(getArguments().getString(ARG_FEED_NAME, "")); } String query = getArguments().getString(ARG_QUERY); emptyViewHandler.setMessage(getString(R.string.no_results_for_query, query)); diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java index 76091327d..9f6c28ee1 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java @@ -30,7 +30,7 @@ public class MenuItemUtils extends de.danoeh.antennapod.core.menuhandler.MenuIte ta.recycle(); } - public static void setupSearchItem(Menu menu, MainActivity activity, long feedId) { + public static void setupSearchItem(Menu menu, MainActivity activity, long feedId, String feedTitle) { MenuItem searchItem = menu.findItem(R.id.action_search); final SearchView sv = (SearchView) searchItem.getActionView(); sv.setQueryHint(activity.getString(R.string.search_label)); @@ -38,7 +38,7 @@ public class MenuItemUtils extends de.danoeh.antennapod.core.menuhandler.MenuIte @Override public boolean onQueryTextSubmit(String s) { sv.clearFocus(); - activity.loadChildFragment(SearchFragment.newInstance(s, feedId)); + activity.loadChildFragment(SearchFragment.newInstance(s, feedId, feedTitle)); searchItem.collapseActionView(); return true; } |