Proyectos de Subversion Android Microlearning

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
package com.cesams.twogetskills.adapter;
2
 
3
import android.content.Context;
4
import android.view.LayoutInflater;
5
import android.view.ViewGroup;
6
import androidx.recyclerview.widget.RecyclerView;
7
 
8
import com.cesams.twogetskills.entity.UserLog;
9
import com.cesams.twogetskills.skeleton.ITimelineDelegateAdapter;
10
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
11
import java.util.HashMap;
12
import java.util.List;
13
 
14
 
15
public class TimelineListViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
16
    private final static String TAG = "C2GS - TimelineListViewAdapter";
17
    private List<UserLog> mData;
18
    private LayoutInflater mInflater;
19
    private Context mContext;
20
    private ITwoGetSkills iTwoGetSkills;
21
    private HashMap<Integer, ITimelineDelegateAdapter> adapterHashMap;
22
 
23
 
24
    // data is passed into the constructor
25
    public TimelineListViewAdapter(Context context, List<UserLog> data) {
26
        this.mContext = context;
27
        this.iTwoGetSkills = (ITwoGetSkills) context;
28
        this.mInflater = LayoutInflater.from(context);
29
        this.mData = data;
30
        this.adapterHashMap = new HashMap<>();
31
 
32
 
33
        TimelineListViewHeaderAdapter headerAdapter = new TimelineListViewHeaderAdapter(mContext);
34
        TimelineListViewPointAdapter pointAdapter = new TimelineListViewPointAdapter(mContext);
35
        TimelineListViewItemAdapter itemAdapter = new TimelineListViewItemAdapter(mContext);
36
        adapterHashMap.put(ITimelineDelegateAdapter.HEADER, headerAdapter);
37
        adapterHashMap.put(ITimelineDelegateAdapter.LINE, pointAdapter);
38
        adapterHashMap.put(ITimelineDelegateAdapter.ITEM, itemAdapter);
39
 
40
    }
41
 
42
    // inflates the row layout from xml when needed
43
    @Override
44
    public  RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
45
        return  adapterHashMap.get(viewType).onCreateViewHolder(parent, viewType);
46
    }
47
 
48
    // binds the data to the TextView in each row
49
    @Override
50
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
51
        adapterHashMap.get(getItemViewType(position)).onBindViewHolder(holder,  mData.get(position));
52
    }
53
 
54
    @Override
55
    public int getItemViewType(int position) {
56
        if(position == 0) {
57
            return ITimelineDelegateAdapter.HEADER;
58
        } else if (position == ( mData.size() - 1)) {
59
            return ITimelineDelegateAdapter.ITEM;
60
        } else {
61
            return ITimelineDelegateAdapter.LINE;
62
        }
63
    }
64
 
65
    @Override
66
    public int getItemCount() {
67
        return mData.size();
68
    }
69
}