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 b5d0c2e..e87fd48 100644 --- a/Listify/app/src/main/java/com/example/listify/SearchResults.java +++ b/Listify/app/src/main/java/com/example/listify/SearchResults.java @@ -189,9 +189,9 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme resultsProductListSorted.sort(new Comparator() { @Override public int compare(Product a, Product b) { - if (a.getPrice() - b.getPrice() > 0) { + if (b.getPrice() - a.getPrice() > 0) { return 1; - } else if (a.getPrice() - b.getPrice() < 0) { + } else if (b.getPrice() - a.getPrice() < 0) { return -1; } else { return 0; 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 3a9816f..ac4713f 100644 --- a/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java +++ b/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java @@ -36,6 +36,7 @@ public class SortDialogFragment extends DialogFragment { this.descending = descending; } + @Override public Dialog onCreateDialog(final Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); @@ -65,6 +66,8 @@ public class SortDialogFragment extends DialogFragment { for (int i = 1; i < stores.size() + 1; i++) { storeChoices[i] = stores.get(i - 1); } + + // Create the store selection dropdown ArrayAdapter storeAdapter = new ArrayAdapter<>(root.getContext(), android.R.layout.simple_spinner_dropdown_item, storeChoices); storeDropdown.setAdapter(storeAdapter); storeDropdown.setSelection(this.storeSelection); @@ -80,6 +83,29 @@ public class SortDialogFragment extends DialogFragment { } }); + // Change the sort arrow to be pointing up or down based on ascending or descending + final ImageButton sortDirectionButton = root.findViewById(R.id.sort_direction_button); + if (descending) { + sortDirectionButton.setImageResource(R.drawable.ic_baseline_arrow_downward_50); + } else { + sortDirectionButton.setImageResource(R.drawable.ic_baseline_arrow_upward_50); + } + + // Change array pointing direction whenever the user clicks the button + sortDirectionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (descending) { + descending = false; + sortDirectionButton.setImageResource(R.drawable.ic_baseline_arrow_upward_50); + } else { + descending = true; + sortDirectionButton.setImageResource(R.drawable.ic_baseline_arrow_downward_50); + } + } + }); + + // Create the sort mode selection dropdown Spinner sortDropdown = (Spinner) root.findViewById(R.id.sort_mode_dropdown); String[] items = new String[] {"", "Name", "Price", "Store"}; ArrayAdapter adapter = new ArrayAdapter<>(root.getContext(), android.R.layout.simple_spinner_dropdown_item, items); @@ -89,6 +115,13 @@ public class SortDialogFragment extends DialogFragment { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { sortMode = position; + + // Update the sort direction button + if (position == 0) { + sortDirectionButton.setEnabled(false); + } else { + sortDirectionButton.setEnabled(true); + } } @Override @@ -97,21 +130,16 @@ public class SortDialogFragment extends DialogFragment { } }); - ImageButton sortDirectionButton = root.findViewById(R.id.sort_direction_button); - sortDirectionButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (descending) { - descending = false; - } else { - descending = true; - } - } - }); + // Disable the direction button if they have the default sorting mode selected + // Ascending and Descending are mostly irrelevant in the default sort mode + if (sortDropdown.getSelectedItemPosition() == 0) { + sortDirectionButton.setEnabled(false); + } return builder.create(); } + // Required to extend DialogFragment @Override public void onAttach(@NonNull Context context) { super.onAttach(context); diff --git a/Listify/app/src/main/res/drawable/ic_baseline_arrow_downward_50.xml b/Listify/app/src/main/res/drawable/ic_baseline_arrow_downward_50.xml new file mode 100644 index 0000000..79f9241 --- /dev/null +++ b/Listify/app/src/main/res/drawable/ic_baseline_arrow_downward_50.xml @@ -0,0 +1,5 @@ + + + diff --git a/Listify/app/src/main/res/drawable/ic_baseline_arrow_upward_50.xml b/Listify/app/src/main/res/drawable/ic_baseline_arrow_upward_50.xml new file mode 100644 index 0000000..a1ddf9b --- /dev/null +++ b/Listify/app/src/main/res/drawable/ic_baseline_arrow_upward_50.xml @@ -0,0 +1,5 @@ + + + diff --git a/Listify/app/src/main/res/layout/dialog_sort.xml b/Listify/app/src/main/res/layout/dialog_sort.xml index 408d835..38e5002 100644 --- a/Listify/app/src/main/res/layout/dialog_sort.xml +++ b/Listify/app/src/main/res/layout/dialog_sort.xml @@ -2,60 +2,52 @@ android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> - - - - - - - - - - - - - - - - - + + + + + + android:layout_height="100dp" + android:paddingStart="15dp"> + android:layout_marginTop="-6dp" + android:layout_width="57dp" + android:layout_height="70dp" + android:background="@null" + android:src="@drawable/ic_baseline_arrow_upward_50"/> - - - - - - - - - - - - - \ No newline at end of file diff --git a/Listify/app/src/main/res/values/strings.xml b/Listify/app/src/main/res/values/strings.xml index 00ee306..6299f7d 100644 --- a/Listify/app/src/main/res/values/strings.xml +++ b/Listify/app/src/main/res/values/strings.xml @@ -28,4 +28,5 @@ Hello second fragment. Arg: %1$s Search Button SearchResults + Store selection \ No newline at end of file