Fix show/hide menu items during search

pull/795/head
Alex Baker 7 years ago
parent 59deff44d3
commit 53cd22868b

@ -128,7 +128,7 @@ public class TaskListFragment extends InjectingFragment
private TaskAdapter taskAdapter = null; private TaskAdapter taskAdapter = null;
private TaskListRecyclerAdapter recyclerAdapter; private TaskListRecyclerAdapter recyclerAdapter;
private PublishSubject<String> searchSubject; private PublishSubject<String> searchSubject = PublishSubject.create();
private Disposable searchDisposable; private Disposable searchDisposable;
/* /*
@ -256,11 +256,9 @@ public class TaskListFragment extends InjectingFragment
MenuItem voice = menu.findItem(R.id.menu_voice_add); MenuItem voice = menu.findItem(R.id.menu_voice_add);
voice.setVisible(device.voiceInputAvailable()); voice.setVisible(device.voiceInputAvailable());
MenuItem sort = menu.findItem(R.id.menu_sort); MenuItem search =
MenuItem clearCompleted = menu.findItem(R.id.menu_clear_completed); menu.findItem(R.id.menu_search)
.setOnActionExpandListener(
final MenuItem item = menu.findItem(R.id.menu_search);
item.setOnActionExpandListener(
new MenuItem.OnActionExpandListener() { new MenuItem.OnActionExpandListener() {
@Override @Override
public boolean onMenuItemActionExpand(MenuItem item) { public boolean onMenuItemActionExpand(MenuItem item) {
@ -269,11 +267,9 @@ public class TaskListFragment extends InjectingFragment
.debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS) .debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS)
.subscribe(q -> searchByQuery(q)); .subscribe(q -> searchByQuery(q));
searchByQuery(""); searchByQuery("");
sort.setVisible(false); for (int i = 0; i < menu.size(); i++) {
clearCompleted.setVisible(false); menu.getItem(i).setVisible(false);
completed.setVisible(false); }
hidden.setVisible(false);
voice.setVisible(false);
return true; return true;
} }
@ -281,22 +277,21 @@ public class TaskListFragment extends InjectingFragment
public boolean onMenuItemActionCollapse(MenuItem item) { public boolean onMenuItemActionCollapse(MenuItem item) {
taskListViewModel.searchByFilter(filter); taskListViewModel.searchByFilter(filter);
searchDisposable.dispose(); searchDisposable.dispose();
sort.setVisible(true); for (int i = 0; i < menu.size(); i++) {
clearCompleted.setVisible(true); menu.getItem(i).setVisible(true);
completed.setVisible(true); }
hidden.setVisible(true);
voice.setVisible(device.voiceInputAvailable()); voice.setVisible(device.voiceInputAvailable());
return true; return true;
} }
}); });
searchSubject = PublishSubject.create(); ((SearchView) search.getActionView())
SearchView actionView = (SearchView) MenuItemCompat.getActionView(item); .setOnQueryTextListener(
actionView.setOnQueryTextListener(
new SearchView.OnQueryTextListener() { new SearchView.OnQueryTextListener() {
@Override @Override
public boolean onQueryTextSubmit(String query) { public boolean onQueryTextSubmit(String query) {
((MainActivity) getActivity()).onFilterItemClicked(createSearchFilter(query.trim())); ((MainActivity) getActivity())
MenuItemCompat.collapseActionView(item); .onFilterItemClicked(createSearchFilter(query.trim()));
MenuItemCompat.collapseActionView(search);
return true; return true;
} }

Loading…
Cancel
Save