package com.ar.drawing.assistant.paint.tooladapter;

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.drawing.assistant.paint.databinding.ItImportBinding;
import com.ar.drawing.assistant.paint.tooldb.DbManager;
import com.ar.drawing.assistant.paint.tooldb.ImportData;
import com.ar.drawing.assistant.paint.ui_activity.ActPreview;
import com.ar.drawing.assistant.paint.utils.MyApp;

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

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


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


    public void setData(List<ImportData> data) {
        this.data = data;
        notifyDataSetChanged();
    }
    public AdImport(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(ItImportBinding.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, ActPreview.class);
                intent.putExtra(MyApp.Key_Camera, path);
                mCon.startActivity(intent);
            }
        });
        holder.binding.delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int adapterPosition = holder.getAdapterPosition();
                DbManager.deleteImport(path);
                data.remove(adapterPosition);
                notifyItemRemoved(adapterPosition);
            }
        });



    }

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

    public static class HomeVH extends RecyclerView.ViewHolder {


        private ItImportBinding binding;


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


        }


    }
}
