Update search behavior

* Show all tasks for empty query
* Revert filter when closing search
pull/795/head
Alex Baker 7 years ago
parent 31fb7e4397
commit 734d51bdfe

@ -259,17 +259,33 @@ public class TaskListFragment extends InjectingFragment
private void setupSearchView(Menu menu) { private void setupSearchView(Menu menu) {
final MenuItem item = menu.findItem(R.id.menu_search); final MenuItem item = menu.findItem(R.id.menu_search);
item.setOnActionExpandListener(
new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
searchByQuery("");
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
taskListViewModel.searchByFilter(filter);
return true;
}
});
final SearchView actionView = (SearchView) MenuItemCompat.getActionView(item); final SearchView actionView = (SearchView) MenuItemCompat.getActionView(item);
searchSubject = PublishSubject.create(); searchSubject = PublishSubject.create();
searchDisposable = searchSubject searchDisposable =
searchSubject
.debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS) .debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS)
.subscribe(this::searchByQuery); .subscribe(this::searchByQuery);
actionView.setOnQueryTextListener( actionView.setOnQueryTextListener(
new SearchView.OnQueryTextListener() { new SearchView.OnQueryTextListener() {
@Override @Override
public boolean onQueryTextSubmit(String query) { public boolean onQueryTextSubmit(String query) {
return false; ((MainActivity) getActivity()).onFilterItemClicked(createSearchFilter(query.trim()));
MenuItemCompat.collapseActionView(item);
return true;
} }
@Override @Override
@ -286,21 +302,21 @@ public class TaskListFragment extends InjectingFragment
Filter savedFilter = createSearchFilter(query); Filter savedFilter = createSearchFilter(query);
taskListViewModel.searchByFilter(savedFilter); taskListViewModel.searchByFilter(savedFilter);
} else { } else {
MainActivity activity = (MainActivity) getActivity(); taskListViewModel.searchByFilter(
taskListViewModel.searchByFilter(activity.defaultFilterProvider.getDefaultFilter()); BuiltInFilterExposer.getMyTasksFilter(context.getResources()));
} }
} }
private Filter createSearchFilter(String query){ private Filter createSearchFilter(String query) {
String title = getString(R.string.FLA_search_filter, query); String title = getString(R.string.FLA_search_filter, query);
return new Filter( return new Filter(
title, new QueryTemplate() title,
new QueryTemplate()
.where( .where(
Criterion.and( Criterion.and(
Task.DELETION_DATE.eq(0), Task.DELETION_DATE.eq(0),
Criterion.or( Criterion.or(
Task.NOTES.like("%" + query + "%"), Task.NOTES.like("%" + query + "%"), Task.TITLE.like("%" + query + "%")))));
Task.TITLE.like("%" + query + "%")))));
} }
@Override @Override

Loading…
Cancel
Save