diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/menuhandler')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java | 40 |
1 files changed, 40 insertions, 0 deletions
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 64eb72ee3..76091327d 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java @@ -4,7 +4,11 @@ import android.content.Context; import android.content.res.TypedArray; import android.view.Menu; import android.view.MenuItem; +import androidx.appcompat.widget.SearchView; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.fragment.SearchFragment; /** * Utilities for menu items @@ -26,4 +30,40 @@ public class MenuItemUtils extends de.danoeh.antennapod.core.menuhandler.MenuIte ta.recycle(); } + public static void setupSearchItem(Menu menu, MainActivity activity, long feedId) { + MenuItem searchItem = menu.findItem(R.id.action_search); + final SearchView sv = (SearchView) searchItem.getActionView(); + sv.setQueryHint(activity.getString(R.string.search_label)); + sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String s) { + sv.clearFocus(); + activity.loadChildFragment(SearchFragment.newInstance(s, feedId)); + searchItem.collapseActionView(); + return true; + } + + @Override + public boolean onQueryTextChange(String s) { + return false; + } + }); + searchItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { + @Override + public boolean onMenuItemActionExpand(MenuItem item) { + for (int i = 0; i < menu.size(); i++) { + if (menu.getItem(i).getItemId() != searchItem.getItemId()) { + menu.getItem(i).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); + } + } + return true; + } + + @Override + public boolean onMenuItemActionCollapse(MenuItem item) { + activity.invalidateOptionsMenu(); + return true; + } + }); + } } |