From 33c3d8c56e504806e28d1975763e28fb874c4e53 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Sun, 1 Nov 2020 00:51:38 -0400 Subject: [PATCH] Filtering search results is disabled until there are results to filter --- .../java/com/example/listify/SearchResults.java | 16 +++++++++++++++- .../com/example/listify/SortDialogFragment.java | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Listify/app/src/main/java/com/example/listify/SearchResults.java b/Listify/app/src/main/java/com/example/listify/SearchResults.java index f6d84b5..7111156 100644 --- a/Listify/app/src/main/java/com/example/listify/SearchResults.java +++ b/Listify/app/src/main/java/com/example/listify/SearchResults.java @@ -27,6 +27,7 @@ import static com.example.listify.MainActivity.am; public class SearchResults extends AppCompatActivity implements FilterDialogFragment.OnFilterListener, SortDialogFragment.OnSortListener { private ListView listView; + private MenuItem filterItem; private SearchResultsListAdapter searchResultsListAdapter; private List resultsProductList = new ArrayList<>(); private List 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 - MenuItem filterItem = menu.findItem(R.id.action_filter); + filterItem = menu.findItem(R.id.action_filter); filterItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -173,6 +174,12 @@ public class SearchResults extends AppCompatActivity implements FilterDialogFrag return false; } }); + + // Disable filtering by default until a search is made + if (resultsProductList.isEmpty()) { + filterItem.setEnabled(false); + } + return true; } @@ -223,6 +230,13 @@ public class SearchResults extends AppCompatActivity implements FilterDialogFrag // Add all results to the sorted list 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 sortResults(); } diff --git a/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java b/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java index 0fbf7f2..e76a43e 100644 --- a/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java +++ b/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java @@ -35,6 +35,7 @@ public class SortDialogFragment extends DialogFragment { } + // TODO: Sorting should scroll the user back to the top of the page @Override public Dialog onCreateDialog(final Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());