Proyectos de Subversion Android Microlearning - Inconcert

Rev

Autoría | Ultima modificación | Ver Log |

package com.cesams.twogetskills.adapter;


import android.content.Context;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

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

import com.cesams.twogetskills.inconcert.Constants;
import com.cesams.twogetskills.inconcert.R;
import com.cesams.twogetskills.inconcert.entity.Capsule;
import com.cesams.twogetskills.inconcert.library.ImageService;
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;

import org.apache.commons.lang3.StringUtils;

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

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

    private List<Capsule> mDataSet;

    private Context mContext;
    private ITwoGetSkills iTwoGetSkills;
    private ClickListener clickListener;


    public MyCapsulesAdapter(Context context, List<Capsule> 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.fragment_my_capsules_item, parent, false);

        MyViewHolder viewHolder = new MyViewHolder(v);

        return viewHolder;
    }

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

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

   /* void setOnItemClickListener(ClickListener clickListener) {
        this.clickListener = clickListener;
    }
*/

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

        private TextView textViewTitle;
        private TextView textViewSlides;
        private TextView textViewProgress;
        private CardView cardView;
        private ImageView imageView;


        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            textViewTitle = itemView.findViewById(R.id.fragment_my_capsules_item_textview_title);
            textViewSlides = itemView.findViewById(R.id.fragment_my_capsules_item_textview_slides);
            textViewProgress = itemView.findViewById(R.id.fragment_my_capsules_item_textview_progress);
            imageView = itemView.findViewById(R.id.fragment_my_capsules_item_imageview);


            cardView = itemView.findViewById(R.id.fragment_my_capsules_item);

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

                /*
                entrar.setFocusable(true);
                entrar.setOnClickListener(this);

                 */
            }
        }

        public void bindData(final Capsule capsule) {

            String title = StringUtils.trim(capsule.getName());
            if (title.length() > Constants.MY_CAPSULES_ITEM_TITLE_MAX_LENGTH) {
                textViewTitle.setText(StringUtils.substring(title, 0, Constants.MY_CAPSULES_ITEM_TITLE_MAX_LENGTH) + "...");
            } else {
                textViewTitle.setText(title);
            }

            String textSlides = mContext.getString(R.string.my_capsules_listing_item_slides);
            textSlides = StringUtils.replace(textSlides, "%totalViews%", String.valueOf(capsule.getViewSlides()));
            textSlides = StringUtils.replace(textSlides, "%totalSlides%", String.valueOf(capsule.getTotalSlides()));

            textViewSlides.setText(textSlides);
            textViewProgress.setText("");

            if (!StringUtils.isEmpty(capsule.getImage())) {
                ImageService.retrieve(mContext, capsule.getImage(), imageView);
            }

        }

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


}

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

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