Proyectos de Subversion Android Microlearning - Inconcert

Rev

Rev 1 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

package com.cesams.twogetskills.inconcert.adapter;


import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.cesams.twogetskills.inconcert.R;
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;
import java.util.ArrayList;
import java.util.HashMap;

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

    private ArrayList<HashMap<String, String>> mDataSet;

    private ClickListener clickListener;
    private View.OnFocusChangeListener focusChangeListener;
    private Context mContext;
    private ITwoGetSkills iTwoGetSkills;

    public CardViewAdapter(Context context, ArrayList<HashMap<String, String>> mDataSet) {
        this.mDataSet = mDataSet;
        this.mContext = context;
        this.iTwoGetSkills = (ITwoGetSkills) context;
    }

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

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        HashMap<String, String> data = mDataSet.get(position);
        holder.bindData(data);
    }

    @Override
    public int getItemCount() {
        return (mDataSet != null) ? mDataSet.size() : 0;
    }

    public String getItem(int position) {
        return (mDataSet != null) ? String.valueOf(mDataSet.get(position)) : null;
    }

    void setOnFocusChangeListener(View.OnFocusChangeListener focusChangeListener){
        this.focusChangeListener = focusChangeListener;
    }



    public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        private TextView titulo,descripcion,nameofday;
        private Button cerrar;
        private CardView card;
        ConstraintLayout daycategory, notificationitem;


        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            titulo = itemView.findViewById(R.id.titlenotifi);
            descripcion = itemView.findViewById(R.id.description);
            cerrar = itemView.findViewById(R.id.button);
            card = itemView.findViewById(R.id.card_notifi);
            daycategory = itemView.findViewById(R.id.daycategory);
            notificationitem = itemView.findViewById(R.id.notificationitem);
            nameofday= itemView.findViewById(R.id.nameofday);

            if (clickListener != null) {
                card.setFocusable(true);
                card.setOnClickListener(this);


            }
        }

        public void bindData(final HashMap<String, String> data) {

            data.entrySet();
            String title, descripciones,color,day, fecha;

            title= data.get("titulo");
            descripciones=data.get("descripcion");
            color=data.get("color");
            day=data.get("day");
            fecha=data.get("date");



            if(!day.equals(""))
            {
                Log.e("Hay notificaciones","este dia");

                daycategory.setVisibility(View.VISIBLE);
                notificationitem.setVisibility(View.GONE);
                card.setCardBackgroundColor(Color.WHITE);
                if(day.equals("today")) {
                    nameofday.setText("Hoy");
                }
                if(day.equals("yesterday")){
                    nameofday.setText("Ayer");
                }
                if(day.equals("other")){
                    nameofday.setText(fecha);
                }

            }



            if (!color.equals("") )
            {
                card.setCardBackgroundColor(Color.WHITE);
            }


            if(titulo != null)
            {
                titulo.setText(title);

            }

          if(descripciones != null)
          {
              descripcion.setText(descripciones);
          }

        }

        @Override
        public void onClick(View v) {
            if (clickListener != null) {
                clickListener.onItemClick(getBindingAdapterPosition(), v);
            }
        }



    }

    // allows clicks events to be caught
    public void setClickListener(ClickListener itemClickListener) {
        this.clickListener = itemClickListener;
    }

    public interface ClickListener {
        void onItemClick(int position, View v);
    }

}