package com.picture.ar.drawing.list;

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.picture.ar.drawing.activity.PreviewActivity;
import com.picture.ar.drawing.data.BeanUpload;
import com.picture.ar.drawing.data.MyDataBase;
import com.picture.ar.drawing.databinding.ListUploadBinding;
import com.picture.ar.drawing.listener.UploadRemoveListener;
import com.picture.ar.drawing.utils.App;

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

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


    private Activity mCon;
    private UploadRemoveListener listener;
    private List<BeanUpload> data = new ArrayList<>();


    public void setData(List<BeanUpload> data) {
        this.data = data;
        notifyDataSetChanged();
    }
    public UploadList(Activity mCon, UploadRemoveListener listener) {
        this.mCon = mCon;
        this.listener = listener;
    }

    public void addData(BeanUpload 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(ListUploadBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull HomeVH holder, int position) {
        BeanUpload beanUpload = data.get(position);
        String path = beanUpload.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, PreviewActivity.class);
                intent.putExtra(App.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);
                listener.onRemoveUpload();
            }
        });



    }

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

    public static class HomeVH extends RecyclerView.ViewHolder {


        private ListUploadBinding binding;


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


    }
}
