125 lines
4.8 KiB
Java
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));
|
|
|
|
}
|
|
|
|
}
|