package com.ar.sketch.paint.drawing.adapter;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

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

import com.ar.sketch.paint.drawing.act.PagePreview;
import com.ar.sketch.paint.drawing.databinding.ListImportBinding;
import com.ar.sketch.paint.drawing.dbmanager.ImportData;
import com.ar.sketch.paint.drawing.dbmanager.MyDataBase;
import com.ar.sketch.paint.drawing.tool.MyArApp;

import java.util.ArrayList;
import java.util.List;

public class ListImport extends RecyclerView.Adapter<ListImport.HomeVH> {


    private Activity mCon;
    private List<ImportData> data = new ArrayList<>();


    public void setData(List<ImportData> data) {
        this.data = data;
        notifyDataSetChanged();
    }
    public ListImport(Activity mCon) {
        this.mCon = mCon;
    }

    public void addData(ImportData newData){
        data.add(newData);
        int i = data.size() - 1;
        notifyItemInserted(i);
        notifyItemChanged(i);

    }

    @NonNull
    @Override
    public HomeVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        return new HomeVH(ListImportBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull HomeVH holder, int position) {
        ImportData importData = data.get(position);
        String path = importData.getUri();
         new Thread(new Runnable() {
             @Override
             public void run() {
                 Bitmap bitmap = BitmapFactory.decodeFile(path);
                 mCon.runOnUiThread(()->{
                     holder.binding.imPreview.setImageBitmap(bitmap);
                 });

             }
         }).start();



        holder.binding.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(mCon, PagePreview.class);
                intent.putExtra(MyArApp.Key_Camera, path);
                mCon.startActivity(intent);
            }
        });
        holder.binding.delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int adapterPosition = holder.getAdapterPosition();
                MyDataBase.deleteImport(path);
                data.remove(adapterPosition);
                notifyItemRemoved(adapterPosition);
            }
        });



    }

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

    public static class HomeVH extends RecyclerView.ViewHolder {


        private ListImportBinding binding;


        public HomeVH(@NonNull ListImportBinding itemView) {
            super(itemView.getRoot());
            binding = itemView;


        }


    }
}
