From 9498128ab1d1de60e4b0560453c5ff41fbd2d975 Mon Sep 17 00:00:00 2001 From: Alex <78383757+Lextical@users.noreply.github.com> Date: Tue, 7 Apr 2026 18:12:02 -0600 Subject: [PATCH] added helper method for filter spinners to maintain code --- .../listfragments/AppointmentFragment.java | 24 ++----------- .../listfragments/InventoryFragment.java | 9 +---- .../fragments/listfragments/PetFragment.java | 34 ++----------------- .../listfragments/ProductFragment.java | 9 +---- .../ProductSupplierFragment.java | 17 ++-------- .../listfragments/PurchaseOrderFragment.java | 9 +---- 6 files changed, 11 insertions(+), 91 deletions(-) diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/AppointmentFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/AppointmentFragment.java index de212485..f7aed714 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/AppointmentFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/AppointmentFragment.java @@ -16,12 +16,10 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import com.example.petstoremobile.R; import com.example.petstoremobile.adapters.AppointmentAdapter; -import com.example.petstoremobile.adapters.WhiteTextArrayAdapter; import com.example.petstoremobile.databinding.FragmentAppointmentBinding; import com.example.petstoremobile.dtos.AppointmentDTO; import com.example.petstoremobile.dtos.StoreDTO; @@ -253,30 +251,14 @@ public class AppointmentFragment extends Fragment implements AppointmentAdapter. */ private void setupStatusFilter() { String[] statuses = {"All Statuses", "Booked", "Completed", "Cancelled", "Missed"}; - WhiteTextArrayAdapter adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, statuses); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - binding.spinnerStatus.setAdapter(adapter); - - binding.spinnerStatus.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadAppointmentData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerStatus, statuses, this::loadAppointmentData); } /** * Configures the store filter spinner. */ private void setupStoreFilter() { - binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadAppointmentData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadAppointmentData); } /** @@ -389,4 +371,4 @@ public class AppointmentFragment extends Fragment implements AppointmentAdapter. binding.recyclerViewAppointments.setLayoutManager(new LinearLayoutManager(getContext())); binding.recyclerViewAppointments.setAdapter(adapter); } -} \ No newline at end of file +} diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/InventoryFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/InventoryFragment.java index 8da34180..bf78e2b8 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/InventoryFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/InventoryFragment.java @@ -7,7 +7,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -148,13 +147,7 @@ public class InventoryFragment extends Fragment implements InventoryAdapter.OnIn * Configures the store filter spinner. */ private void setupStoreFilter() { - binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadInventory(true); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerStore, () -> loadInventory(true)); } /** diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PetFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PetFragment.java index 4daa8ea3..578022c3 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PetFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PetFragment.java @@ -15,12 +15,10 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import com.example.petstoremobile.R; import com.example.petstoremobile.adapters.PetAdapter; -import com.example.petstoremobile.adapters.WhiteTextArrayAdapter; import com.example.petstoremobile.databinding.FragmentPetBinding; import com.example.petstoremobile.dtos.PetDTO; import com.example.petstoremobile.dtos.StoreDTO; @@ -161,17 +159,7 @@ public class PetFragment extends Fragment implements PetAdapter.OnPetClickListen */ private void setupStatusFilter() { String[] statuses = {"All Statuses", "Available", "Adopted", "Owned"}; - WhiteTextArrayAdapter adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, statuses); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - binding.spinnerStatus.setAdapter(adapter); - - binding.spinnerStatus.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadPetData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerStatus, statuses, this::loadPetData); } /** @@ -179,30 +167,14 @@ public class PetFragment extends Fragment implements PetAdapter.OnPetClickListen */ private void setupSpeciesFilter() { String[] species = {"All Species", "Dog", "Cat", "Bird", "Rabbit", "Fish", "Hamster"}; - WhiteTextArrayAdapter adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, species); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - binding.spinnerSpecies.setAdapter(adapter); - - binding.spinnerSpecies.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadPetData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerSpecies, species, this::loadPetData); } /** * Configures the store filter spinner. */ private void setupStoreFilter() { - binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadPetData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadPetData); } /** diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductFragment.java index d68a218c..b2c28fee 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductFragment.java @@ -15,7 +15,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import com.example.petstoremobile.R; @@ -137,13 +136,7 @@ public class ProductFragment extends Fragment implements ProductAdapter.OnProduc * Configures the category filter spinner. */ private void setupCategoryFilter() { - binding.spinnerCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadProductData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerCategory, this::loadProductData); } /** diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductSupplierFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductSupplierFragment.java index 11f5ebf1..578aa7a9 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductSupplierFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/ProductSupplierFragment.java @@ -7,7 +7,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -168,26 +167,14 @@ public class ProductSupplierFragment extends Fragment * Configures the product filter spinner. */ private void setupProductFilter() { - binding.spinnerProduct.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerProduct, this::loadData); } /** * Configures the supplier filter spinner. */ private void setupSupplierFilter() { - binding.spinnerSupplier.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerSupplier, this::loadData); } /** diff --git a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PurchaseOrderFragment.java b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PurchaseOrderFragment.java index 452f8d69..9a758cb8 100644 --- a/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PurchaseOrderFragment.java +++ b/android/app/src/main/java/com/example/petstoremobile/fragments/listfragments/PurchaseOrderFragment.java @@ -7,7 +7,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -133,13 +132,7 @@ public class PurchaseOrderFragment extends Fragment * Configures the store filter spinner. */ private void setupStoreFilter() { - binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadData(); - } - @Override public void onNothingSelected(AdapterView parent) {} - }); + SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadData); } /**