Filtering search results is disabled until there are results to filter

This commit is contained in:
Clayton Wilson 2020-11-01 00:51:38 -04:00
parent e392820404
commit 33c3d8c56e
2 changed files with 16 additions and 1 deletions

View File

@ -27,6 +27,7 @@ import static com.example.listify.MainActivity.am;
public class SearchResults extends AppCompatActivity implements FilterDialogFragment.OnFilterListener, SortDialogFragment.OnSortListener { public class SearchResults extends AppCompatActivity implements FilterDialogFragment.OnFilterListener, SortDialogFragment.OnSortListener {
private ListView listView; private ListView listView;
private MenuItem filterItem;
private SearchResultsListAdapter searchResultsListAdapter; private SearchResultsListAdapter searchResultsListAdapter;
private List<Product> resultsProductList = new ArrayList<>(); private List<Product> resultsProductList = new ArrayList<>();
private List<Product> resultsProductListSorted = new ArrayList<>(); private List<Product> resultsProductListSorted = new ArrayList<>();
@ -133,7 +134,7 @@ public class SearchResults extends AppCompatActivity implements FilterDialogFrag
}); });
// TODO: price filter should be disabled until a search is made // TODO: price filter should be disabled until a search is made
MenuItem filterItem = menu.findItem(R.id.action_filter); filterItem = menu.findItem(R.id.action_filter);
filterItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { filterItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
@ -173,6 +174,12 @@ public class SearchResults extends AppCompatActivity implements FilterDialogFrag
return false; return false;
} }
}); });
// Disable filtering by default until a search is made
if (resultsProductList.isEmpty()) {
filterItem.setEnabled(false);
}
return true; return true;
} }
@ -223,6 +230,13 @@ public class SearchResults extends AppCompatActivity implements FilterDialogFrag
// Add all results to the sorted list // Add all results to the sorted list
resultsProductListSorted.addAll(resultsProductList); resultsProductListSorted.addAll(resultsProductList);
// Filtering should only be allowed if there are items in the results
if (resultsProductList.isEmpty()) {
filterItem.setEnabled(false);
} else {
filterItem.setEnabled(true);
}
// Apply selected sorting to the list // Apply selected sorting to the list
sortResults(); sortResults();
} }

View File

@ -35,6 +35,7 @@ public class SortDialogFragment extends DialogFragment {
} }
// TODO: Sorting should scroll the user back to the top of the page
@Override @Override
public Dialog onCreateDialog(final Bundle savedInstanceState) { public Dialog onCreateDialog(final Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());