Proyectos de Subversion Android Microlearning - Nuevo Interface

Rev

Rev 25 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 gabriel 1
package com.cesams.twogetskills.adapter;
2
 
3
 
4
import android.content.Context;
11 gabriel 5
import android.text.Html;
5 gabriel 6
import android.view.LayoutInflater;
7
import android.view.View;
8
import android.view.ViewGroup;
11 gabriel 9
import android.widget.Button;
5 gabriel 10
import android.widget.ImageView;
11
import android.widget.TextView;
12
 
13
import androidx.annotation.NonNull;
23 gabriel 14
import androidx.cardview.widget.CardView;
5 gabriel 15
import androidx.recyclerview.widget.RecyclerView;
16
 
17
import com.cesams.twogetskills.Constants;
18
import com.cesams.twogetskills.R;
71 efrain 19
import com.cesams.twogetskills.entity.Capsule;
20
import com.cesams.twogetskills.library.ImageService;
5 gabriel 21
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
22
 
71 efrain 23
import org.apache.commons.lang3.StringUtils;
24
 
5 gabriel 25
import java.util.ArrayList;
26
import java.util.HashMap;
71 efrain 27
import java.util.List;
5 gabriel 28
 
71 efrain 29
public class MyCapsulesAdapter extends RecyclerView.Adapter<MyCapsulesAdapter.MyViewHolder> {
5 gabriel 30
 
71 efrain 31
    private List<Capsule> mDataSet;
5 gabriel 32
 
33
    private Context mContext;
34
    private ITwoGetSkills iTwoGetSkills;
11 gabriel 35
    private ClickListener clickListener;
5 gabriel 36
 
11 gabriel 37
 
71 efrain 38
    public MyCapsulesAdapter(Context context, List<Capsule> mDataSet) {
5 gabriel 39
        this.mDataSet = mDataSet;
40
        this.mContext = context;
41
        this.iTwoGetSkills = (ITwoGetSkills) context;
42
    }
43
 
44
    @NonNull
45
    @Override
46
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
71 efrain 47
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_my_capsules_item, parent, false);
11 gabriel 48
 
49
        MyViewHolder viewHolder = new MyViewHolder(v);
50
 
51
        return viewHolder;
5 gabriel 52
    }
53
 
54
    @Override
55
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
71 efrain 56
        Capsule data = mDataSet.get(position);
5 gabriel 57
        holder.bindData(data);
58
    }
59
 
60
    @Override
61
    public int getItemCount() {
62
        return (mDataSet != null) ? mDataSet.size() : 0;
63
    }
64
 
17 gabriel 65
   /* void setOnItemClickListener(ClickListener clickListener) {
5 gabriel 66
        this.clickListener = clickListener;
67
    }
17 gabriel 68
*/
5 gabriel 69
 
70
    public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
71
 
71 efrain 72
        private TextView textViewTitle;
73
        private TextView textViewSlides;
74
        private TextView textViewProgress;
75
        private CardView cardView;
76
        private ImageView imageView;
5 gabriel 77
 
78
 
79
        public MyViewHolder(@NonNull View itemView) {
80
            super(itemView);
71 efrain 81
            textViewTitle = itemView.findViewById(R.id.fragment_my_capsules_item_textview_title);
82
            textViewSlides = itemView.findViewById(R.id.fragment_my_capsules_item_textview_slides);
83
            textViewProgress = itemView.findViewById(R.id.fragment_my_capsules_item_textview_progress);
84
            imageView = itemView.findViewById(R.id.fragment_my_capsules_item_imageview);
12 gabriel 85
 
71 efrain 86
 
87
            cardView = itemView.findViewById(R.id.fragment_my_capsules_item);
88
 
5 gabriel 89
            if (clickListener != null) {
71 efrain 90
                cardView.setFocusable(true);
91
                cardView.setOnClickListener(this);
92
 
93
                /*
17 gabriel 94
                entrar.setFocusable(true);
95
                entrar.setOnClickListener(this);
71 efrain 96
 
97
                 */
5 gabriel 98
            }
99
        }
100
 
71 efrain 101
        public void bindData(final Capsule capsule) {
5 gabriel 102
 
71 efrain 103
            String title = StringUtils.trim(capsule.getName());
104
            if (title.length() > Constants.MY_CAPSULES_ITEM_TITLE_MAX_LENGTH) {
105
                textViewTitle.setText(StringUtils.substring(title, 0, Constants.MY_CAPSULES_ITEM_TITLE_MAX_LENGTH) + "...");
106
            } else {
107
                textViewTitle.setText(title);
5 gabriel 108
            }
109
 
71 efrain 110
            String textSlides = mContext.getString(R.string.my_capsules_listing_item_slides);
111
            textSlides = StringUtils.replace(textSlides, "%totalViews%", String.valueOf(capsule.getViewSlides()));
112
            textSlides = StringUtils.replace(textSlides, "%totalSlides%", String.valueOf(capsule.getTotalSlides()));
5 gabriel 113
 
71 efrain 114
            textViewSlides.setText(textSlides);
115
            textViewProgress.setText("");
12 gabriel 116
 
71 efrain 117
            if (!StringUtils.isEmpty(capsule.getImage())) {
118
                ImageService.retrieve(mContext, capsule.getImage(), imageView);
5 gabriel 119
            }
120
 
121
        }
122
 
123
        @Override
124
        public void onClick(View v) {
125
            if (clickListener != null) {
17 gabriel 126
                clickListener.onItemClick(getAbsoluteAdapterPosition(), v);
5 gabriel 127
            }
128
        }
129
 
130
 
11 gabriel 131
}
5 gabriel 132
 
17 gabriel 133
    // allows clicks events to be caught
134
    public void setClickListener(ClickListener itemClickListener) {
135
        this.clickListener = itemClickListener;
136
    }
137
 
5 gabriel 138
    public interface ClickListener {
139
        void onItemClick(int position, View v);
11 gabriel 140
    }}