CustomLabelAdapterFrontEnd.java 3.1 KB
package etelligens.com.foodsafety.adapter;

import android.content.Context;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;

import org.json.JSONArray;

import java.net.URLDecoder;
import java.util.ArrayList;

import etelligens.com.foodsafety.R;
import etelligens.com.foodsafety.model.CustomLabelFrontModal;

import static etelligens.com.foodsafety.utils.EndPoint.ETE_IMAGE_BASEURL;

public class CustomLabelAdapterFrontEnd extends RecyclerView.Adapter<CustomLabelAdapterFrontEnd.CustomViewHolder> {

    Context context;
    ArrayList<CustomLabelFrontModal> labelFrontModals;
    PassData passData;

    public interface PassData {
        void sendData(CustomLabelFrontModal customLabelFrontModal);
    }

    public CustomLabelAdapterFrontEnd(Context context, ArrayList<CustomLabelFrontModal> labelFrontModals, PassData passData) {
        this.context = context;
        this.labelFrontModals = labelFrontModals;
        this.passData = passData;
    }

    View view;

    @NonNull
    @Override
    public CustomLabelAdapterFrontEnd.CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
        view = LayoutInflater.from(context).inflate(R.layout.item_layout_categorylist, parent, false);
        return new CustomViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull CustomLabelAdapterFrontEnd.CustomViewHolder holder, int position) {
        final CustomLabelFrontModal modal = labelFrontModals.get(position);
        String name = modal.getDescription();
       String decodeName=decodeString(name);
        if (decodeName != null) {

            holder.itemname.setText(decodeName);

        } else {
            holder.itemname.setText(R.string.unknown_txt);
        }

        String image = modal.getImage();

        if (decodeName != null) {
            holder.itemname.setText(decodeName);
        }

        if (image != null && !image.equals("")) {
            Glide.with(context)
                    .load(ETE_IMAGE_BASEURL + image)
                    .into(holder.itemImg);
        } else {
            holder.itemImg.setImageResource(R.drawable.icon_no_image);
        }

        holder.rllayout.setOnClickListener(view -> passData.sendData(modal));
    }

    @Override
    public int getItemCount() {
        return labelFrontModals.size();
    }

    private String decodeString(String productPrice) {
        String value= URLDecoder.decode(productPrice);
        return value;
    }

    public class CustomViewHolder extends RecyclerView.ViewHolder {
        ImageView itemImg;
        TextView itemname;
        RelativeLayout rllayout;

        public CustomViewHolder(View itemview) {
            super(itemview);

            itemImg = itemview.findViewById(R.id.item_image_layout);
            itemname = itemview.findViewById(R.id.item_textname);
            rllayout = itemview.findViewById(R.id.rl_layout);
        }
    }
}