package br.com.codetec.saudesabor.ui.login.ui.adapter;

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

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.widget.LinearLayoutCompat;
import androidx.recyclerview.widget.RecyclerView;

import com.squareup.picasso.Picasso;

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

import br.com.codetec.saudesabor.R;
import br.com.codetec.saudesabor.model.Categoria;
import br.com.codetec.saudesabor.ui.login.ListaProdutosActivity;
import br.com.codetec.saudesabor.ui.login.ui.task.DownLoadImageTask;
import br.com.codetec.saudesabor.utils.UtilsActivity;

public class CategoriaAdapter extends RecyclerView.Adapter<CategoriaAdapter.CategoriaViewHolder> {
    private List<Categoria> listaCategorias = new ArrayList<>();
    private Context context;

    public CategoriaAdapter(List<Categoria> listaCategorias, Context context) {
        this.listaCategorias = listaCategorias;
        this.context = context;
    }

    @NonNull
    @Override
    public CategoriaViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_item_categoria, parent, false);
        return new CategoriaViewHolder(itemView);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onBindViewHolder(@NonNull CategoriaViewHolder holder, int position) {
        final Categoria categoria = listaCategorias.get(position);
//        holder.getTxtNome().setText(categoria.getNome());

//        holder.getTxtNome().setText(categoria.getCategory());
//        new DownLoadImageTask(holder.getImagemIngresso()).execute(categoria.getCategory_image());

        Picasso.get().load(categoria.getCategory_image()).into(holder.getImagemIngresso());

        holder.getItemCategoriaLinearLayout().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ListaProdutosActivity.ID_CATEGORIA = categoria.getCategory_id();
                UtilsActivity.getInstance().startActivity(context, ListaProdutosActivity.class);
            }
        });
    }

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

    public class CategoriaViewHolder extends RecyclerView.ViewHolder {
        protected TextView txtNome;
        protected TextView txtDescricao;
        protected ImageView imagemIngresso;
        protected LinearLayoutCompat itemCategoriaLinearLayout;

        public CategoriaViewHolder(View itemView) {
            super(itemView);
//            this.txtNome = (TextView) itemView.findViewById(R.id.txtNome);
//            this.txtDescricao = (TextView) itemView.findViewById(R.id.txtNome);
            this.imagemIngresso = (ImageView) itemView.findViewById(R.id.imagem);
            this.itemCategoriaLinearLayout = (LinearLayoutCompat) itemView.findViewById(R.id.itemLinearLayout);
        }

        public TextView getTxtNome() {
            return txtNome;
        }

        public void setTxtNome(TextView txtNome) {
            this.txtNome = txtNome;
        }

        public TextView getTxtDescricao() {
            return txtDescricao;
        }

        public void setTxtDescricao(TextView txtDescricao) {
            this.txtDescricao = txtDescricao;
        }

        public ImageView getImagemIngresso() {
            return imagemIngresso;
        }

        public void setImagemIngresso(ImageView imagemIngresso) {
            this.imagemIngresso = imagemIngresso;
        }

        public LinearLayoutCompat getItemCategoriaLinearLayout() {
            return itemCategoriaLinearLayout;
        }

        public void setItemCategoriaLinearLayout(LinearLayoutCompat itemCategoriaLinearLayout) {
            this.itemCategoriaLinearLayout = itemCategoriaLinearLayout;
        }
    }

}
