diff --git a/Listify/app/build.gradle b/Listify/app/build.gradle
index 0ad5dc3..d90a79b 100644
--- a/Listify/app/build.gradle
+++ b/Listify/app/build.gradle
@@ -51,5 +51,5 @@ dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
-
+ implementation 'com.crystal:crystalrangeseekbar:1.1.3'
}
\ No newline at end of file
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 ac4713f..d94f120 100644
--- a/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java
+++ b/Listify/app/src/main/java/com/example/listify/SortDialogFragment.java
@@ -10,9 +10,18 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.Spinner;
+import android.widget.TextView;
+
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
+
+import com.crystal.crystalrangeseekbar.interfaces.OnRangeSeekbarChangeListener;
+import com.crystal.crystalrangeseekbar.interfaces.OnRangeSeekbarFinalValueListener;
+import com.crystal.crystalrangeseekbar.widgets.CrystalRangeSeekbar;
+
+import org.w3c.dom.Text;
+
import java.util.ArrayList;
@@ -136,6 +145,31 @@ public class SortDialogFragment extends DialogFragment {
sortDirectionButton.setEnabled(false);
}
+ // Set up the seekbar for price
+ final CrystalRangeSeekbar priceSeekbar = (CrystalRangeSeekbar) root.findViewById(R.id.price_range_seekbar);
+ final TextView tvMin = (TextView) root.findViewById(R.id.tv_min_price);
+ final TextView tvMax = (TextView) root.findViewById(R.id.tv_max_price);
+
+ priceSeekbar.setMaxValue(367);
+
+ // Update price display
+ priceSeekbar.setOnRangeSeekbarChangeListener(new OnRangeSeekbarChangeListener() {
+ @Override
+ public void valueChanged(Number minValue, Number maxValue) {
+ tvMin.setText(String.format("$%.2f", minValue.doubleValue()));
+ tvMax.setText(String.format("$%.2f", maxValue.doubleValue()));
+ }
+ });
+
+ // Save price values when user finishes moving the slider
+ priceSeekbar.setOnRangeSeekbarFinalValueListener(new OnRangeSeekbarFinalValueListener() {
+ @Override
+ public void finalValue(Number minValue, Number maxValue) {
+ System.out.println(String.format("Min: $%.2f, Max: $%.2f", minValue.doubleValue(), maxValue.doubleValue()));
+ }
+ });
+
+
return builder.create();
}
diff --git a/Listify/app/src/main/res/layout/dialog_sort.xml b/Listify/app/src/main/res/layout/dialog_sort.xml
index 38e5002..6a6d5b1 100644
--- a/Listify/app/src/main/res/layout/dialog_sort.xml
+++ b/Listify/app/src/main/res/layout/dialog_sort.xml
@@ -31,7 +31,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file