AddGoGrabLineBackendAdapter.java 10.2 KB
package etelligens.com.foodsafety.adapter;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

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

import org.json.JSONException;
import org.json.JSONObject;

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

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

public class AddGoGrabLineBackendAdapter extends RecyclerView.Adapter<AddGoGrabLineBackendAdapter.AddGoViewHolder> {
    Context context;
    ArrayList<GrabAndGoSubLabelsModel> grabAndGoSubLabelsModels;
    PassData passData;
    ArrayList<String> ss = new ArrayList<>();
    int count = 0;


    public interface PassData {
        void sendData();
        void nameItem(GrabAndGoSubLabelsModel grabAndGoSubLabelsModel, int count);
    }


    public AddGoGrabLineBackendAdapter(Context context, ArrayList<GrabAndGoSubLabelsModel> grabAndGoSubLabelsModels, PassData passData) {
        this.context = context;
        this.grabAndGoSubLabelsModels = grabAndGoSubLabelsModels;
        this.passData = passData;
    }

    View view;


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

    @Override
    public void onBindViewHolder(@NonNull final AddGoGrabLineBackendAdapter.AddGoViewHolder holder, final int position) {
        final GrabAndGoSubLabelsModel model = grabAndGoSubLabelsModels.get(position);
        final String name = model.getName();

        String parentIds = String.valueOf(model.getParent_id());
        Log.e("parentId=== ", parentIds);
        if (parentIds.equals("4")) {
            holder.percetLayout.setVisibility(View.GONE);
        }
        if (model.getIs_head() == 1) {
            holder.percetLayout.setVisibility(View.GONE);
            holder.secondLayout.setVisibility(View.GONE);
        }
        if (name != null) {
            if (name.equalsIgnoreCase(context.getString(R.string.nutrition_fact))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
                holder.txtTwo.setVisibility(View.GONE);
                holder.txtThree.setVisibility(View.GONE);
                holder.percetLayout.setVisibility(View.GONE);
            } else if (name.equalsIgnoreCase(context.getString(R.string.daily_value))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(0);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText("");
            } else if (name.equalsIgnoreCase(context.getString(R.string.total_fat))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            } else if (name.equalsIgnoreCase(context.getString(R.string.sodium))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            } else if (name.equalsIgnoreCase(context.getString(R.string.carbohydrate))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            } else if (name.equalsIgnoreCase(context.getString(R.string.protein))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            } else if (name.equalsIgnoreCase(context.getString(R.string.calories))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
                holder.percetLayout.setVisibility(View.GONE);
            } else if (name.equalsIgnoreCase(context.getString(R.string.cholesterol))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            }else if (name.equalsIgnoreCase(context.getString(R.string.total_carbo))) {
                holder.txtOne.setTextColor(Color.BLACK);
                holder.txtOne.setTextSize(14);
                Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
                holder.txtOne.setTypeface(boldTypeface);
                holder.txtOne.setText(name);
            }

            holder.txtOne.setText(name);
            System.out.println(name + " ....name");
        }

        if (model.getOption_value() != null) {
            String value = model.getOption_value().getValue();

            if (value != null) {
                try {
                    JSONObject obj = new JSONObject(value);

                    System.out.println(obj.toString() + " ..............lllll");
                    String uDay = obj.getString("0");
                    String uHr = obj.getString("1");
                    String newValue=String.valueOf(decodeString(uDay));
                    if (newValue!=null){
                        holder.txtTwo.setText(newValue);
                        model.setValue(newValue);
                    }else {
                        holder.txtTwo.setText("0");
                        model.setValue("0");
                    }
                    holder.txtThree.setText(uHr);
                    model.setPercent(uHr);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }

        if (model.getIs_list() != 0) {
            holder.crossbtn.setVisibility(View.GONE);
        } else {
            holder.crossbtn.setVisibility(View.VISIBLE);
        }

        if (model.getValue() != null) {
            String value = model.getValue();
            if (value!=null){
                holder.txtTwo.setText(value);
            }else {
                holder.txtTwo.setText("0");
            }
        }

        if (model.getPercent() != null) {
            String per = model.getPercent();
            holder.txtThree.setText(per + "%");
        }

        holder.txtOne.setOnClickListener(v -> {
            if (name != null && !name.equalsIgnoreCase(context.getString(R.string.nutrition_fact))) {
                if (!name.equalsIgnoreCase(context.getString(R.string.total_fat))) {
                    if (!name.equalsIgnoreCase(context.getString(R.string.sodium))) {
                        if (!name.equalsIgnoreCase(context.getString(R.string.carbohydrate))) {
                            if (!name.equalsIgnoreCase(context.getString(R.string.protein))) {
                                if (!name.equalsIgnoreCase(context.getString(R.string.daily_value))) {
                                    if (!name.equalsIgnoreCase(context.getString(R.string.total_carbo))) {
                                        if (!name.equalsIgnoreCase(context.getString(R.string.cholesterol))) {
                                            if (!name.equalsIgnoreCase(context.getString(R.string.calories))) {
                                                passData.nameItem(model, 1);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        });

        holder.txtTwo.setOnClickListener(v -> {
            System.out.println("chck2222");
            passData.nameItem(model, 2);
        });
        holder.txtThree.setOnClickListener(v -> {
            System.out.println("chck333");
            passData.nameItem(model, 3);
        });
        holder.crossbtn.setOnClickListener(v -> {
            grabAndGoSubLabelsModels.remove(position);
            notifyDataSetChanged();
        });
    }

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

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

    public class AddGoViewHolder extends RecyclerView.ViewHolder {
        TextView txtOne, txtTwo, txtThree;
        LinearLayout llremovelayout, lllable, percetLayout, secondLayout;
        ImageView crossbtn;


        public AddGoViewHolder(View itemveiw) {
            super(itemveiw);
            crossbtn = itemveiw.findViewById(R.id.cross_btn);
            llremovelayout = itemveiw.findViewById(R.id.ll_lable);
            lllable = itemveiw.findViewById(R.id.llremove_layout);
            txtOne = itemveiw.findViewById(R.id.txt_one);
            txtTwo = itemveiw.findViewById(R.id.txt_two);
            txtThree = itemveiw.findViewById(R.id.txt_three);
            percetLayout = itemveiw.findViewById(R.id.percetLayout);
            secondLayout = itemveiw.findViewById(R.id.secondLayout);
        }
    }
}