added helper method for filter spinners to maintain code

This commit is contained in:
Alex
2026-04-07 18:12:02 -06:00
parent 155c64a729
commit 54ab737e2d
6 changed files with 11 additions and 91 deletions

View File

@@ -16,12 +16,10 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import com.example.petstoremobile.R; import com.example.petstoremobile.R;
import com.example.petstoremobile.adapters.AppointmentAdapter; import com.example.petstoremobile.adapters.AppointmentAdapter;
import com.example.petstoremobile.adapters.WhiteTextArrayAdapter;
import com.example.petstoremobile.databinding.FragmentAppointmentBinding; import com.example.petstoremobile.databinding.FragmentAppointmentBinding;
import com.example.petstoremobile.dtos.AppointmentDTO; import com.example.petstoremobile.dtos.AppointmentDTO;
import com.example.petstoremobile.dtos.StoreDTO; import com.example.petstoremobile.dtos.StoreDTO;
@@ -253,30 +251,14 @@ public class AppointmentFragment extends Fragment implements AppointmentAdapter.
*/ */
private void setupStatusFilter() { private void setupStatusFilter() {
String[] statuses = {"All Statuses", "Booked", "Completed", "Cancelled", "Missed"}; String[] statuses = {"All Statuses", "Booked", "Completed", "Cancelled", "Missed"};
WhiteTextArrayAdapter<String> adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, statuses); SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerStatus, statuses, this::loadAppointmentData);
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) {}
});
} }
/** /**
* Configures the store filter spinner. * Configures the store filter spinner.
*/ */
private void setupStoreFilter() { private void setupStoreFilter() {
binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadAppointmentData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadAppointmentData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**
@@ -389,4 +371,4 @@ public class AppointmentFragment extends Fragment implements AppointmentAdapter.
binding.recyclerViewAppointments.setLayoutManager(new LinearLayoutManager(getContext())); binding.recyclerViewAppointments.setLayoutManager(new LinearLayoutManager(getContext()));
binding.recyclerViewAppointments.setAdapter(adapter); binding.recyclerViewAppointments.setAdapter(adapter);
} }
} }

View File

@@ -7,7 +7,6 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -148,13 +147,7 @@ public class InventoryFragment extends Fragment implements InventoryAdapter.OnIn
* Configures the store filter spinner. * Configures the store filter spinner.
*/ */
private void setupStoreFilter() { private void setupStoreFilter() {
binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerStore, () -> loadInventory(true));
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadInventory(true);
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**

View File

@@ -15,12 +15,10 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import com.example.petstoremobile.R; import com.example.petstoremobile.R;
import com.example.petstoremobile.adapters.PetAdapter; import com.example.petstoremobile.adapters.PetAdapter;
import com.example.petstoremobile.adapters.WhiteTextArrayAdapter;
import com.example.petstoremobile.databinding.FragmentPetBinding; import com.example.petstoremobile.databinding.FragmentPetBinding;
import com.example.petstoremobile.dtos.PetDTO; import com.example.petstoremobile.dtos.PetDTO;
import com.example.petstoremobile.dtos.StoreDTO; import com.example.petstoremobile.dtos.StoreDTO;
@@ -161,17 +159,7 @@ public class PetFragment extends Fragment implements PetAdapter.OnPetClickListen
*/ */
private void setupStatusFilter() { private void setupStatusFilter() {
String[] statuses = {"All Statuses", "Available", "Adopted", "Owned"}; String[] statuses = {"All Statuses", "Available", "Adopted", "Owned"};
WhiteTextArrayAdapter<String> adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, statuses); SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerStatus, statuses, this::loadPetData);
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) {}
});
} }
/** /**
@@ -179,30 +167,14 @@ public class PetFragment extends Fragment implements PetAdapter.OnPetClickListen
*/ */
private void setupSpeciesFilter() { private void setupSpeciesFilter() {
String[] species = {"All Species", "Dog", "Cat", "Bird", "Rabbit", "Fish", "Hamster"}; String[] species = {"All Species", "Dog", "Cat", "Bird", "Rabbit", "Fish", "Hamster"};
WhiteTextArrayAdapter<String> adapter = new WhiteTextArrayAdapter<>(requireContext(), android.R.layout.simple_spinner_item, species); SpinnerUtils.setupStringFilterSpinner(requireContext(), binding.spinnerSpecies, species, this::loadPetData);
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) {}
});
} }
/** /**
* Configures the store filter spinner. * Configures the store filter spinner.
*/ */
private void setupStoreFilter() { private void setupStoreFilter() {
binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadPetData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadPetData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**

View File

@@ -15,7 +15,6 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import com.example.petstoremobile.R; import com.example.petstoremobile.R;
@@ -137,13 +136,7 @@ public class ProductFragment extends Fragment implements ProductAdapter.OnProduc
* Configures the category filter spinner. * Configures the category filter spinner.
*/ */
private void setupCategoryFilter() { private void setupCategoryFilter() {
binding.spinnerCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerCategory, this::loadProductData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadProductData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**

View File

@@ -7,7 +7,6 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -168,26 +167,14 @@ public class ProductSupplierFragment extends Fragment
* Configures the product filter spinner. * Configures the product filter spinner.
*/ */
private void setupProductFilter() { private void setupProductFilter() {
binding.spinnerProduct.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerProduct, this::loadData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**
* Configures the supplier filter spinner. * Configures the supplier filter spinner.
*/ */
private void setupSupplierFilter() { private void setupSupplierFilter() {
binding.spinnerSupplier.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerSupplier, this::loadData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**

View File

@@ -7,7 +7,6 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -133,13 +132,7 @@ public class PurchaseOrderFragment extends Fragment
* Configures the store filter spinner. * Configures the store filter spinner.
*/ */
private void setupStoreFilter() { private void setupStoreFilter() {
binding.spinnerStore.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { SpinnerUtils.setupFilterSpinner(binding.spinnerStore, this::loadData);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
loadData();
}
@Override public void onNothingSelected(AdapterView<?> parent) {}
});
} }
/** /**