pdlivexp/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/ContainerRecyclerAdapter.java
2022-09-20 18:29:05 +08:00

125 lines
4.8 KiB
Java

package com.yunbao.faceunity.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.faceunity.R;
import com.yunbao.faceunity.adapters.vh.AnimViewHolder;
import com.yunbao.faceunity.adapters.vh.AnimojiViewHolder;
import com.yunbao.faceunity.adapters.vh.BaseViewHolder;
import com.yunbao.faceunity.adapters.vh.BeautyBodyViewHolder;
import com.yunbao.faceunity.adapters.vh.BeautyShapeViewHolder;
import com.yunbao.faceunity.adapters.vh.BeautySkinViewHolder;
import com.yunbao.faceunity.adapters.vh.BigHeadViewHolder;
import com.yunbao.faceunity.adapters.vh.FilterViewHolder;
import com.yunbao.faceunity.adapters.vh.FineStickerViewHolder;
import com.yunbao.faceunity.adapters.vh.MakeupViewHolder;
import com.yunbao.faceunity.adapters.vh.StickerViewHolder;
import com.yunbao.faceunity.adapters.vh.StyleViewHolder;
import com.yunbao.faceunity.data.FaceParam;
import com.yunbao.faceunity.entity.BaseBean;
import com.yunbao.faceunity.entity.ModelAttributeData;
import com.yunbao.faceunity.seekbar.DiscreteSeekBar;
import com.yunbao.faceunity.utils.SeekBarUtils;
import java.util.ArrayList;
import java.util.List;
public class ContainerRecyclerAdapter extends RecyclerView.Adapter<BaseViewHolder> {
private Context mContext;
private List<? extends BaseBean> list;
public int selectPosition = -1;
public ContainerRecyclerAdapter(Context mContext) {
this.mContext = mContext;
}
public void setList(ArrayList<? extends BaseBean> list) {
this.list = list;
this.selectPosition = 0;
}
public int getSelectPosition() {
return selectPosition;
}
public void setSelectPosition(int selectPosition) {
this.selectPosition = selectPosition;
notifyDataSetChanged();
}
@NonNull
@Override
public BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater from = LayoutInflater.from(mContext);
BaseViewHolder vh;
switch (viewType) {
case FaceParam.FACE_BEAUTY_SKIN:
vh = new BeautySkinViewHolder(from.inflate(R.layout.list_item_face_config, parent, false));
break;
case FaceParam.FACE_BEAUTY_SHAPE:
vh = new BeautyShapeViewHolder(from.inflate(R.layout.list_item_face_config, parent, false));
break;
case FaceParam.FACE_BEAUTY_BODY:
vh = new BeautyBodyViewHolder(from.inflate(R.layout.list_item_face_config, parent, false));
break;
case FaceParam.FACE_BEAUTY_FILTER:
vh = new FilterViewHolder(from.inflate(R.layout.list_item_face_config_filter, parent, false));
break;
case FaceParam.FACE_MAKEUP:
vh = new MakeupViewHolder(from.inflate(R.layout.list_item_face_config_filter, parent, false));
break;
case FaceParam.FACE_BEAUTY_STYLE:
vh = new StyleViewHolder(from.inflate(R.layout.list_item_face_config_style, parent, false));
break;
case FaceParam.FACE_ANIMOJI:
vh = new AnimojiViewHolder(from.inflate(R.layout.list_item_face_config_big_head, parent, false));
break;
case FaceParam.FACE_ANIM:
vh = new AnimViewHolder(from.inflate(R.layout.list_item_face_config_big_head, parent, false));
break;
case FaceParam.FACE_STICKER:
vh = new StickerViewHolder(from.inflate(R.layout.list_item_face_config_big_head, parent, false));
break;
case FaceParam.FACE_BIG_HEAD:
vh = new BigHeadViewHolder(from.inflate(R.layout.list_item_face_config_big_head, parent, false));
break;
case FaceParam.FACE_FINE_STICKER:
case FaceParam.FACE_FINE_STICKER_MIDDLE:
case FaceParam.FACE_FINE_STICKER_HIGH:
case FaceParam.FACE_FINE_STICKER_GAME:
vh = new FineStickerViewHolder(from.inflate(R.layout.list_item_face_config_big_head, parent, false));
break;
default:
vh = new BeautySkinViewHolder(LayoutInflater.from(mContext).inflate(R.layout.list_item_face_config, parent, false));
}
vh.adapter = this;
return vh;
}
@Override
public int getItemViewType(int position) {
return list.get(position).getBeanType();
}
@Override
public int getItemCount() {
return list.size();
}
@Override
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
holder.setData(list.get(position));
}
}