Proyectos de Subversion Android Microlearning

Rev

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

package com.cesams.twogetskills.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import androidx.recyclerview.widget.RecyclerView;

import com.cesams.twogetskills.viewdata.UserProfileViewData;
import com.cesams.twogetskills.skeleton.IUserProfileDelegateAdapter;
import com.cesams.twogetskills.skeleton.ITwoGetSkills;

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


public class UserProfileListViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private final static String TAG = "C2GS - UserProfileListViewAdapter";
    private List<UserProfileViewData> mData;
    private LayoutInflater mInflater;
    private Context mContext;
    private ITwoGetSkills iTwoGetSkills;
    private HashMap<Integer, IUserProfileDelegateAdapter> adapterHashMap;


    // data is passed into the constructor
    public UserProfileListViewAdapter(Context context, List<UserProfileViewData> data) {
        this.mContext = context;
        this.iTwoGetSkills = (ITwoGetSkills) context;
        this.mInflater = LayoutInflater.from(context);
        this.mData = data;
        this.adapterHashMap = new HashMap<>();


        UserProfileListViewHeaderAdapter headerAdapter = new UserProfileListViewHeaderAdapter(mContext);
        UserProfileListViewItemAdapter itemAdapter = new UserProfileListViewItemAdapter(mContext);
        adapterHashMap.put(UserProfileViewData.TYPE_COMPANY, headerAdapter);
        adapterHashMap.put(UserProfileViewData.TYPE_ITEM, itemAdapter);

    }

    // inflates the row layout from xml when needed
    @Override
    public  RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return  adapterHashMap.get(viewType).onCreateViewHolder(parent, viewType);
    }

    // binds the data to the TextView in each row
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        adapterHashMap.get(getItemViewType(position)).onBindViewHolder(holder,  mData.get(position));
    }

    @Override
    public int getItemViewType(int position) {
        return mData.get(position).getType();
    }

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