From baa143ff00eac46911eaac3143864ab19ba707ee Mon Sep 17 00:00:00 2001 From: Alex <78383757+Lextical@users.noreply.github.com> Date: Tue, 7 Apr 2026 14:17:24 -0600 Subject: [PATCH] edited adapters in andriod to use viewbinding --- .../adapters/AdoptionAdapter.java | 42 +++++++-------- .../adapters/AppointmentAdapter.java | 42 +++++++-------- .../petstoremobile/adapters/ChatAdapter.java | 21 ++++---- .../adapters/InventoryAdapter.java | 51 ++++++++----------- .../adapters/MessageAdapter.java | 40 +++++++-------- .../petstoremobile/adapters/PetAdapter.java | 43 +++++++--------- .../adapters/ProductAdapter.java | 35 ++++++------- .../adapters/ProductSupplierAdapter.java | 29 +++++------ .../adapters/PurchaseOrderAdapter.java | 40 +++++++-------- .../petstoremobile/adapters/SaleAdapter.java | 44 +++++++--------- .../adapters/ServiceAdapter.java | 28 +++++----- .../adapters/SupplierAdapter.java | 28 +++++----- .../src/main/res/layout/item_appointment.xml | 9 ++++ 13 files changed, 204 insertions(+), 248 deletions(-) diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/AdoptionAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/AdoptionAdapter.java index 6dd8eeb4..d4eddff1 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/AdoptionAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/AdoptionAdapter.java @@ -1,11 +1,11 @@ package com.example.petstoremobile.adapters; import android.graphics.Color; -import android.view.*; -import android.widget.TextView; +import android.view.LayoutInflater; +import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemAdoptionBinding; import com.example.petstoremobile.dtos.AdoptionDTO; import java.util.List; @@ -24,50 +24,46 @@ public class AdoptionAdapter extends RecyclerView.Adapter listener.onChatClick(chat)); } @@ -48,12 +46,11 @@ public class ChatAdapter extends RecyclerView.Adapter { if (selectionMode) { - toggleSelection(inv.getInventoryId(), holder.checkBox); + toggleSelection(inv.getInventoryId(), binding.cbSelectInventory); } else { clickListener.onInventoryClick(holder.getAdapterPosition()); } @@ -105,14 +96,14 @@ public class InventoryAdapter extends RecyclerView.Adapter { if (!selectionMode) { selectionMode = true; - toggleSelection(inv.getInventoryId(), holder.checkBox); + toggleSelection(inv.getInventoryId(), binding.cbSelectInventory); notifyDataSetChanged(); } return true; }); } - private void toggleSelection(Long id, CheckBox checkBox) { + private void toggleSelection(Long id, android.widget.CheckBox checkBox) { if (id == null) return; if (selectedIds.contains(id)) { diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/MessageAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/MessageAdapter.java index de6ccc04..ee58941a 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/MessageAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/MessageAdapter.java @@ -12,6 +12,8 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.model.GlideUrl; import com.bumptech.glide.load.model.LazyHeaders; import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemMessageReceivedBinding; +import com.example.petstoremobile.databinding.ItemMessageSentBinding; import com.example.petstoremobile.models.Message; import java.util.List; @@ -51,11 +53,11 @@ public class MessageAdapter extends RecyclerView.Adapter { // Get the controls of each row in recycler view public static class PetViewHolder extends RecyclerView.ViewHolder { - TextView tvPetName, tvPetSpeciesBreed, tvPetAge, tvPetPrice, tvPetStatus; - ImageView ivPetProfile; + private final ItemPetBinding binding; - public PetViewHolder(@NonNull View v) { - super(v); - tvPetName = v.findViewById(R.id.tvPetName); - tvPetSpeciesBreed = v.findViewById(R.id.tvPetSpeciesBreed); - tvPetAge = v.findViewById(R.id.tvPetAge); - tvPetPrice = v.findViewById(R.id.tvPetPrice); - tvPetStatus = v.findViewById(R.id.tvPetStatus); - ivPetProfile = v.findViewById(R.id.ivPetProfile); + public PetViewHolder(@NonNull ItemPetBinding binding) { + super(binding.getRoot()); + this.binding = binding; } } @@ -61,41 +53,42 @@ public class PetAdapter extends RecyclerView.Adapter { @NonNull @Override public PetViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_pet, parent, false); - return new PetViewHolder(v); + ItemPetBinding binding = ItemPetBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); + return new PetViewHolder(binding); } //populate the row with pet data @Override public void onBindViewHolder(@NonNull PetViewHolder holder, int position) { PetDTO pet = petList.get(position); + ItemPetBinding binding = holder.binding; - holder.tvPetName.setText(pet.getPetName()); - holder.tvPetSpeciesBreed.setText(pet.getPetSpecies() + " - " + pet.getPetBreed()); - holder.tvPetAge.setText("Age: " + pet.getPetAge() + " yr(s)"); + binding.tvPetName.setText(pet.getPetName()); + binding.tvPetSpeciesBreed.setText(pet.getPetSpecies() + " - " + pet.getPetBreed()); + binding.tvPetAge.setText("Age: " + pet.getPetAge() + " yr(s)"); Double price = pet.getPetPrice(); if (price != null) { - holder.tvPetPrice.setText("$" + String.format("%.2f", price)); + binding.tvPetPrice.setText("$" + String.format("%.2f", price)); } else { - holder.tvPetPrice.setText("$0.00"); + binding.tvPetPrice.setText("$0.00"); } - holder.tvPetStatus.setText(pet.getPetStatus()); + binding.tvPetStatus.setText(pet.getPetStatus()); //Set the status color depending on availability. If available, green, otherwise red if (pet.getPetStatus() != null && pet.getPetStatus().equals("Available")) { - holder.tvPetStatus.setBackgroundColor(Color.parseColor("#4CAF50")); + binding.tvPetStatus.setBackgroundColor(Color.parseColor("#4CAF50")); } else { - holder.tvPetStatus.setBackgroundColor(Color.parseColor("#F44336")); + binding.tvPetStatus.setBackgroundColor(Color.parseColor("#F44336")); } // Load pet image using Glide if (baseUrl != null) { String imageUrl = baseUrl + String.format(PetApi.PET_IMAGE_PATH, pet.getPetId()); - GlideUtils.loadImageWithTokenCircle(holder.itemView.getContext(), holder.ivPetProfile, imageUrl, token, R.drawable.placeholder); + GlideUtils.loadImageWithTokenCircle(holder.itemView.getContext(), binding.ivPetProfile, imageUrl, token, R.drawable.placeholder); } else { - holder.ivPetProfile.setImageResource(R.drawable.placeholder); + binding.ivPetProfile.setImageResource(R.drawable.placeholder); } //when a row is clicked, open the detail view diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/ProductAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/ProductAdapter.java index ad1cf678..f5f897cc 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/ProductAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/ProductAdapter.java @@ -1,13 +1,12 @@ package com.example.petstoremobile.adapters; import android.view.*; -import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.petstoremobile.R; import com.example.petstoremobile.api.ProductApi; +import com.example.petstoremobile.databinding.ItemProductBinding; import com.example.petstoremobile.dtos.ProductDTO; import com.example.petstoremobile.utils.GlideUtils; import java.util.List; @@ -37,41 +36,37 @@ public class ProductAdapter extends RecyclerView.Adapter listener.onProductClick(position)); diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/ProductSupplierAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/ProductSupplierAdapter.java index 4c6377e1..75519120 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/ProductSupplierAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/ProductSupplierAdapter.java @@ -1,10 +1,10 @@ package com.example.petstoremobile.adapters; -import android.view.*; -import android.widget.TextView; +import android.view.LayoutInflater; +import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemProductSupplierBinding; import com.example.petstoremobile.dtos.ProductSupplierDTO; import java.util.List; @@ -23,30 +23,29 @@ public class ProductSupplierAdapter extends RecyclerView.Adapter listener.onProductSupplierClick(position)); } diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/PurchaseOrderAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/PurchaseOrderAdapter.java index 2d66e672..57061ef1 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/PurchaseOrderAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/PurchaseOrderAdapter.java @@ -1,11 +1,11 @@ package com.example.petstoremobile.adapters; import android.graphics.Color; -import android.view.*; -import android.widget.TextView; +import android.view.LayoutInflater; +import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemPurchaseOrderBinding; import com.example.petstoremobile.dtos.PurchaseOrderDTO; import java.util.List; @@ -24,47 +24,45 @@ public class PurchaseOrderAdapter extends RecyclerView.Adapter saleClickListener.onSaleClick(position)); diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/ServiceAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/ServiceAdapter.java index e3cc6d1c..15bc005d 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/ServiceAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/ServiceAdapter.java @@ -1,12 +1,10 @@ package com.example.petstoremobile.adapters; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemServiceBinding; import com.example.petstoremobile.dtos.ServiceDTO; import java.util.List; @@ -28,14 +26,11 @@ public class ServiceAdapter extends RecyclerView.Adapter serviceClickListener.onServiceClick(position)); diff --git a/android/app/src/main/java/com/example/petstoremobile/adapters/SupplierAdapter.java b/android/app/src/main/java/com/example/petstoremobile/adapters/SupplierAdapter.java index e134f5b2..ce41d60e 100644 --- a/android/app/src/main/java/com/example/petstoremobile/adapters/SupplierAdapter.java +++ b/android/app/src/main/java/com/example/petstoremobile/adapters/SupplierAdapter.java @@ -1,12 +1,10 @@ package com.example.petstoremobile.adapters; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.example.petstoremobile.R; +import com.example.petstoremobile.databinding.ItemSupplierBinding; import com.example.petstoremobile.dtos.SupplierDTO; import java.util.List; @@ -28,14 +26,11 @@ public class SupplierAdapter extends RecyclerView.Adapter supplierClickListener.onSupplierClick(position)); diff --git a/android/app/src/main/res/layout/item_appointment.xml b/android/app/src/main/res/layout/item_appointment.xml index 82e6ab2e..2844cb86 100644 --- a/android/app/src/main/res/layout/item_appointment.xml +++ b/android/app/src/main/res/layout/item_appointment.xml @@ -55,6 +55,15 @@ android:textColor="#666666" android:textSize="14sp" /> + +