package com.example.status_saver.adapters;

import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

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

import com.bumptech.glide.Glide;
import com.cv.status.R;
import com.example.status_saver.PreViewActivity;
import com.example.status_saver.intefaces.OnSaveItemClickListeners;
import com.example.status_saver.model.StatusModel;

import java.util.ArrayList;

public class SaveBottomAdapter extends RecyclerView.Adapter<SaveBottomAdapter.MyViewHolder> {

    ArrayList<StatusModel> imagelist = new ArrayList<>();
    ArrayList<String> selectedList = new ArrayList<>();
    Context mainActivity;
    OnSaveItemClickListeners onSaveItemClickListeners;
    boolean isLongCLick = false;

    public SaveBottomAdapter(Context context, ArrayList<StatusModel> imageslist, OnSaveItemClickListeners onSaveItemClickListener) {
        this.mainActivity = context;
        this.imagelist = imageslist;
        this.onSaveItemClickListeners = onSaveItemClickListener;

    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_item_bottom, parent, false);
        return new SaveBottomAdapter.MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        Intent intent = new Intent(mainActivity, PreViewActivity.class);
        if (imagelist.get(position).isVideo()) {
            holder.play.setVisibility(View.VISIBLE);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            Glide.with(mainActivity)
                    .load(imagelist.get(position).getPath())
                    .into(holder.img);
        } else {
            Glide.with(mainActivity).load(imagelist.get(position).getPath()).into(holder.img);

        }
        StatusModel statusModel = new StatusModel();


        holder.img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("PreViewActivity.SaveBottomAdapter.onClick");
                if (isLongCLick) {
                    System.out.println("PreViewActivity.SaveBottomAdapter.onClicklong " + isLongCLick);
                    statusModel.setSelected(!statusModel.isSelected());
                    System.out.println("SaveBottomAdapter.onClick model " + statusModel.isSelected());
                    if (statusModel.isSelected()) {
                        holder.selected_img.setVisibility(View.VISIBLE);
                        selectedList.add(imagelist.get(position).getPath());
                    } else {
                        holder.selected_img.setVisibility(View.GONE);
                        selectedList.remove(imagelist.get(position).getPath());
                    }
                    System.out.println("SaveBottomAdapter.onClick size " + selectedList.size());
                    if (selectedList.size() == 0) {
                        isLongCLick = false;
                    }
                } else {
                    onSaveItemClickListeners.onItemClick(imagelist.get(position).getPath());
                }

            }
        });
        holder.img.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                isLongCLick = true;
                statusModel.setSelected(!statusModel.isSelected());
                System.out.println("SaveBottomAdapter.onBindViewHolder selegsvdd");
                //   holder.img.setBackgroundColor(statusModel.isSelected()? Color.RED : Color.WHITE);
                holder.selected_img.setVisibility(View.VISIBLE);
                selectedList.add(imagelist.get(position).getPath());
                System.out.println("SaveBottomAdapter.onLongClick............" + selectedList.size());
                // intent.putExtra("video_path", String.valueOf(imagelist.get(position).getPath()));
                return true;
            }
        });


    }

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

    public ArrayList<String> shareSelectionList() {
        return selectedList;
    }


    class MyViewHolder extends RecyclerView.ViewHolder {
        ImageView img, download, play, selected_img;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.img);
            download = itemView.findViewById(R.id.download);
            play = itemView.findViewById(R.id.play);
            selected_img = itemView.findViewById(R.id.selected);

        }
    }


}
