@Override public boolean startActionMode(ActionMode.Callback callback) { if (mSearchViewExpanded) { return false; } if (mActionMode == null) { mActionMode = ((AppCompatActivity) getActivity()).startSupportActionMode(callback); } return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_clear) { clear(); return true; } if (item.getItemId() == R.id.menu_export) { mFavoriteManager.export(getActivity(), mFilter); return true; } return super.onOptionsItemSelected(item); }
private void clear() { mAlertDialogBuilder .init(getActivity()) .setMessage(R.string.confirm_clear) .setPositiveButton(android.R.string.ok, (dialog, which) -> mFavoriteManager.clear(getActivity(), mFilter)) .setNegativeButton(android.R.string.cancel, null) .create().show(); } }
private void createSearchView(MenuItem menuSearch) { final SearchView searchView = (SearchView) mActionViewResolver.getActionView(menuSearch); searchView.setQueryHint(getString(R.string.hint_search_saved_stories)); searchView.setSearchableInfo(((SearchManager) getActivity() .getSystemService(Context.SEARCH_SERVICE)) .getSearchableInfo(getActivity().getComponentName())); searchView.setIconified(!mSearchViewExpanded); searchView.setQuery(mFilter, false); searchView.setOnSearchClickListener(v -> { mSearchViewExpanded = true; v.requestFocus(); }); searchView.setOnCloseListener(() -> { // trigger a dummy empty search intent, as empty query does not get submitted searchView.setQuery(FavoriteActivity.EMPTY_QUERY, true); return false; }); }
@Override public void onChanged() { getAdapter().notifyChanged(); if (!isDetached()) { toggleEmptyView(getAdapter().getItemCount() == 0, mFilter); getActivity().invalidateOptionsMenu(); } }