package com.cygnusa.hyperm.adapter;

//public class ScheduleParticipantAdapter extends BaseExpandableListAdapter {
//
//    private Schedules schedules;
//    private LayoutInflater inflater;
//    private Context context;
//    private ApiService restClient;
//    private TransparentProgressDialog progressDialog;
//
//    public ScheduleParticipantAdapter(Context context, Schedules schedules, ApiService restClient) {
//        this.schedules = schedules;
//        inflater = LayoutInflater.from(context);
//        this.context = context;
//        this.restClient = restClient;
//    }
//
//    @Override
//    public int getGroupCount() {
//        return schedules.getUserlist().size();
//    }
//
//    @Override
//    public int getChildrenCount(int i) {
//        return schedules.getUserlist().get(i).getTimerlist().size();
//    }
//
//    @Override
//    public DSE getGroup(int i) {
//        return schedules.getUserlist().get(i);
//    }
//
//    @Override
//    public TimeTaken getChild(int i, int i1) {
//        return schedules.getUserlist().get(i).getTimerlist().get(i1);
//    }
//
//    @Override
//    public long getGroupId(int i) {
//        return 0;
//    }
//
//    @Override
//    public long getChildId(int i, int i1) {
//        return 0;
//    }
//
//    @Override
//    public boolean hasStableIds() {
//        return false;
//    }
//
//    @SuppressLint("SetTextI18n")
//    @Override
//    public View getGroupView(int position, boolean isExpanded, View convertView, ViewGroup parent) {
//        ViewHolder holder;
//        if (convertView == null) {
//            holder = new ViewHolder();
//            convertView = inflater.inflate(R.layout.history_item, null);
//            holder.name = convertView.findViewById(R.id.name);
//            holder.status = convertView.findViewById(R.id.status);
//            holder.duration = convertView.findViewById(R.id.duration);
//            holder.userIcon = convertView.findViewById(R.id.userIcon);
//            holder.removeParticipant = convertView.findViewById(R.id.removeParticipant);
//            convertView.setTag(holder);
//
//        } else {
//            holder = (ViewHolder) convertView.getTag();
//        }
//
//        holder.removeParticipant.setVisibility(View.GONE);
//        if (!schedules.isValidTime()) {
//            if (!schedules.isEnded()) {
//                holder.removeParticipant.setVisibility(View.VISIBLE);
//            }
//        }
//        holder.removeParticipant.setTag(schedules.getUserlist().get(position));
//        holder.removeParticipant.setOnClickListener(view -> {
//            final DSE dse = (DSE) view.getTag();
//            new AlertDialog.Builder(context)
//                    .setMessage("Are you sure to remove?")
//                    .setTitle(dse.getName())
//                    .setPositiveButton("Yes",
//                            (dialog, which) -> removeDSEFromTraining(dse)).setNegativeButton("No", null).show();
//        });
//
//        holder.name.setText(schedules.getUserlist().get(position).getName());
//        holder.duration.setText("");
//        Glide.with(context).load(schedules.getUserlist().get(position).getProfile())
//                .thumbnail(Glide.with(context).load(R.drawable.gif_loader))
//                .into(holder.userIcon);
//
//
//
//        if (schedules.isValidTime() && schedules.getStatus().equalsIgnoreCase("1")) {
//            holder.status.setText("Ongoing");
//            holder.status.setTextColor(Color.parseColor("#2e7d32"));
//            holder.duration.setVisibility(View.INVISIBLE);
//        } else {
//            if (schedules.isEnded() || schedules.getStatus().equalsIgnoreCase("2")) {
//                if (schedules.getUserlist().get(position).getTimerlist().size() > 0) {
//                    String participate = schedules.getUserlist().get(position).getTimerlist().get(0).getFromTimeString();
//                    participate = participate + " to " + schedules.getUserlist()
//                            .get(position).getTimerlist().get(schedules.getUserlist()
//                                    .get(position).getTimerlist().size() - 1).getToTimeString();
//                    holder.status.setText(participate);
//                    holder.status.setTextColor(Color.parseColor("#000000"));
//                    holder.duration.setVisibility(View.VISIBLE);
//
//                    int sec = 0;
//                    for (TimeTaken taken : schedules.getUserlist().get(position).getTimerlist()) {
//                        sec = sec + taken.getTimeTakenSeconds();
//                    }
//                    holder.duration.setText(getDurationBreakdown(sec));
//                } else {
//                    holder.status.setText("Not Attended");
//                    holder.status.setTextColor(Color.parseColor("#F44336"));
//                    holder.duration.setVisibility(View.INVISIBLE);
//                }
//            } else {
//                holder.status.setText("Not Started");
//                holder.status.setTextColor(Color.parseColor("#2869db"));
//                holder.duration.setVisibility(View.INVISIBLE);
//            }
//        }
//        return convertView;
//    }
//
//    @Override
//    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
//        TimeTaken taken = getChild(groupPosition, childPosition);
//        TimeViewHolder holder;
//        if (convertView == null) {
//            LayoutInflater infalInflater = (LayoutInflater) this.context
//                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//            convertView = Objects.requireNonNull(infalInflater).inflate(R.layout.history_child_item, null);
//            holder = new TimeViewHolder(convertView);
//            convertView.setTag(holder);
//        } else {
//            holder = (TimeViewHolder) convertView.getTag();
//        }
//
//        String participate = taken.getTimeString(true) + " - " + taken.getTimeString(false);
//        holder.status.setText(participate);
//        holder.duration.setText(getDurationBreakdown(taken.getTimeTakenSeconds()));
//        return convertView;
//    }
//
//    @Override
//    public boolean isChildSelectable(int i, int i1) {
//        return false;
//    }
//
//    static class ViewHolder {
//        TextView name, status, duration;
//        ImageButton removeParticipant;
//        CircularImageView userIcon;
//    }
//
//    private String getDurationBreakdown(int SECONDS) {
//        int secondsLeft = SECONDS % 3600 % 60;
//        int minutes = (int) Math.floor(SECONDS % 3600 / 60);
//        int hours = (int) Math.floor(SECONDS / 3600);
//        String HH = ((hours < 10) ? "0" : "") + hours;
//        String MM = ((minutes < 10) ? "0" : "") + minutes;
//        String SS = ((secondsLeft < 10) ? "0" : "") + secondsLeft;
//        return HH + ":" + MM + ":" + SS;
//    }
//
//    static class TimeViewHolder {
//        TextView status, duration;
//
//        TimeViewHolder(View view) {
//            status = view.findViewById(R.id.status);
//            duration = view.findViewById(R.id.duration);
//        }
//    }
//
//    private void removeDSEFromTraining(DSE dse) {
//        if (new UtilService().isNetworkAvailable(Objects.requireNonNull(context))) {
//            try {
//                progressDialog = new TransparentProgressDialog(context);
//                progressDialog.setCancelable(true);
//                progressDialog.show();
//
//                restClient.removeDSEFromTraining(schedules.getId(), dse.getUserid()).enqueue(new MyCallback<CommonResponse>(dse) {
//                    @Override
//                    public void onResponse(Call<CommonResponse> call, Response<CommonResponse> response) {
//                        if (progressDialog != null && progressDialog.isShowing()) {
//                            progressDialog.dismiss();
//                        }
//                        if (response.isSuccessful()) {
//                            Toast.makeText(context, "Participant removed", Toast.LENGTH_SHORT).show();
//                            schedules.getUserlist().remove(dse);
//                            notifyDataSetChanged();
//                        } else {
//                            Toast.makeText(context, "Unable to remove, try again!", Toast.LENGTH_SHORT).show();
//                        }
//                    }
//
//                    @Override
//                    public void onFailure(Call<CommonResponse> call, Throwable t) {
//                        if (progressDialog != null && progressDialog.isShowing()) {
//                            progressDialog.dismiss();
//                        }
//                        Toast.makeText(context, "Unable to remove, try again!", Toast.LENGTH_SHORT).show();
//                    }
//                });
//            } catch (Exception e) {
//                if (progressDialog != null && progressDialog.isShowing()) {
//                    progressDialog.dismiss();
//                }
//                e.printStackTrace();
//                Toast.makeText(context, "Unable to remove, try again!", Toast.LENGTH_SHORT).show();
//            }
//        }
//    }
//}
