package etelligens.com.foodsafety.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.squareup.picasso.Picasso; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import etelligens.com.foodsafety.R; import etelligens.com.foodsafety.model.AddNewPrepBackendModal; import etelligens.com.foodsafety.utils.EndPoint; public class CreateCustomLabelsAdapter extends RecyclerView.Adapter { Context context; private ArrayList prepBackendModals; String name = ""; Passdata passdata; public interface Passdata { void day(AddNewPrepBackendModal addNewPrepBackendModal); void hour(AddNewPrepBackendModal addNewPrepBackendModal); void mint(AddNewPrepBackendModal addNewPrepBackendModal); void labelName(AddNewPrepBackendModal addNewPrepBackendModal); void imageData(AddNewPrepBackendModal addNewPrepBackendModal, int data, int position); void sendUncheckValue(AddNewPrepBackendModal addNewPrepBackendModal, String data, CheckBox checkBox); } public CreateCustomLabelsAdapter(Context context, ArrayList prepBackendModals, Passdata passdata) { this.context = context; this.prepBackendModals = prepBackendModals; this.passdata = passdata; } View view; @NonNull @Override public CreateCustomLabelsAdapter.AddNewViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { view = LayoutInflater.from(context).inflate(R.layout.item_layout_add_new_prep_product_backend, parent, false); return new CreateCustomLabelsAdapter.AddNewViewHolder(view); } @Override public void onBindViewHolder(@NonNull final CreateCustomLabelsAdapter.AddNewViewHolder holder, final int i) { final AddNewPrepBackendModal addNewPrepBackendModal = prepBackendModals.get(i); name = addNewPrepBackendModal.getName(); final String img = addNewPrepBackendModal.getFile(); final String option_image = addNewPrepBackendModal.getOption_image(); if (img != null) { Bitmap bMap = getBitmap(img); if (bMap != null) { holder.uploadImg.setImageBitmap(bMap); holder.uploadImg.setVisibility(View.VISIBLE); } else { holder.uploadImg.setImageBitmap(bMap); holder.uploadImg.setVisibility(View.VISIBLE); Bitmap decodedByte = BitmapFactory.decodeFile(img); holder.uploadImg.setImageBitmap(decodedByte); holder.uploadImg.setVisibility(View.VISIBLE); // holder.uploadImg.setImageResource(R.drawable.ic_bluetooth_24dp); } } else if (option_image != null) { holder.uploadImg.setVisibility(View.VISIBLE); Picasso.get().load(EndPoint.ETE_IMAGE_BASEURL + option_image) .into(holder.uploadImg); } String dayNew = addNewPrepBackendModal.getDate(); String hrNew = addNewPrepBackendModal.getHour(); String minNew = addNewPrepBackendModal.getMin(); if (addNewPrepBackendModal.getIsChecked() != null) { String isChecked = addNewPrepBackendModal.getIsChecked(); if (isChecked.equalsIgnoreCase("1")) { holder.labelcheckbox.setChecked(true); } else { holder.labelcheckbox.setChecked(false); } } // if (name.equalsIgnoreCase(context.getString(R.string.defrost_txt)) || // name.equalsIgnoreCase(context.getString(R.string.opend_txt)) || name.equalsIgnoreCase(context.getString(R.string.thawed_txt))) { // holder.labelcheckbox.setVisibility(View.GONE); // holder.rlcrossbtn.setVisibility(View.GONE); // // }else { holder.rlcrossbtn.setVisibility(View.VISIBLE); holder.labelcheckbox.setVisibility(View.VISIBLE); //} holder.labelcheckbox.setOnClickListener(v -> { // if (name.equalsIgnoreCase(context.getString(R.string.defrost_txt))) { // holder.labelcheckbox.setChecked(true); // holder.rlcrossbtn.setVisibility(View.GONE); // } else if (name.equalsIgnoreCase(context.getString(R.string.opend_txt))) { // holder.labelcheckbox.setChecked(true); // holder.rlcrossbtn.setVisibility(View.GONE); // } else if (name.equalsIgnoreCase(context.getString(R.string.thawed_txt))) { // holder.labelcheckbox.setChecked(true); // holder.rlcrossbtn.setVisibility(View.GONE); // } else if (holder.labelcheckbox.isChecked()){ // && // !name.equalsIgnoreCase(context.getString(R.string.defrost_txt)) && // !name.equalsIgnoreCase(context.getString(R.string.opend_txt)) && // !name.equalsIgnoreCase(context.getString(R.string.thawed_txt))) { passdata.sendUncheckValue(addNewPrepBackendModal, "Check", holder.labelcheckbox); } else if (!holder.labelcheckbox.isChecked() ){ //&& // !name.equalsIgnoreCase(context.getString(R.string.defrost_txt)) && // !name.equalsIgnoreCase(context.getString(R.string.opend_txt)) && // !name.equalsIgnoreCase(context.getString(R.string.thawed_txt))) { passdata.sendUncheckValue(addNewPrepBackendModal, "unCheck", holder.labelcheckbox); }else { // do nothing... // holder.labelcheckbox.setChecked(true); Toast.makeText(context, "not selectable", Toast.LENGTH_SHORT).show(); } }); holder.labelNametxt.setOnClickListener(view -> { // if (!name.equalsIgnoreCase(context.getString(R.string.defrost_txt)) && // !name.equalsIgnoreCase(context.getString(R.string.opend_txt)) && !name.equalsIgnoreCase(context.getString(R.string.thawed_txt))) { passdata.labelName(addNewPrepBackendModal); //} }); if (name != null) { holder.labelNametxt.setText(name); } if (dayNew != null) { holder.day.setText(dayNew); } if (minNew != null) { holder.mins.setText(minNew); } if (hrNew != null) { holder.hours.setText(hrNew); } holder.day.setOnClickListener(v -> passdata.day(addNewPrepBackendModal)); holder.hours.setOnClickListener(v -> passdata.hour(addNewPrepBackendModal)); holder.mins.setOnClickListener(v -> passdata.mint(addNewPrepBackendModal)); holder.lluploadImglayout.setOnClickListener(view -> passdata.imageData(addNewPrepBackendModal, 1, i)); holder.rlcrossbtn.setOnClickListener(v -> { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(holder.ll_parent_label_value.getWindowToken(), 0); prepBackendModals.remove(i); notifyDataSetChanged(); }); } public Bitmap getBitmap(String path) { Bitmap bitmap = null; try { File f = new File(path); BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; bitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, options); } catch (Exception e) { e.printStackTrace(); } return bitmap; } @Override public int getItemCount() { return prepBackendModals.size(); } @Override public int getItemViewType(int position) { return position; } public class AddNewViewHolder extends RecyclerView.ViewHolder { LinearLayout lluploadImglayout, lllabelvalue, ll_parent_label_value; RelativeLayout rlcrossbtn; ImageView uploadImg, tvcrossimg; TextView day, hours, mins, labelNametxt; CheckBox labelcheckbox; public AddNewViewHolder(View itemview) { super(itemview); day = itemview.findViewById(R.id.tv_text_day); hours = itemview.findViewById(R.id.tv_text_hour); mins = itemview.findViewById(R.id.tv_text_mins); lluploadImglayout = itemview.findViewById(R.id.ll_upload_img_layout); uploadImg = itemview.findViewById(R.id.upload_img); labelNametxt = itemview.findViewById(R.id.label_name_txt); labelcheckbox = itemview.findViewById(R.id.label_check_box); rlcrossbtn = itemview.findViewById(R.id.rl_cross_btn); tvcrossimg = itemview.findViewById(R.id.tv_cross_img); lllabelvalue = itemview.findViewById(R.id.ll_label_value); ll_parent_label_value = itemview.findViewById(R.id.ll_parent_label_value); } } }