package com.edufound.reader.cusview; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.edufound.reader.R; import com.edufound.reader.bean.ExampleBean; import com.edufound.reader.bean.ModelBean; import com.edufound.reader.bean.UserRecordBean; import com.edufound.reader.util.EfunboxUtil; import com.edufound.reader.util.GlideUtils; import com.edufound.reader.util.SizeUtils; import com.jakewharton.rxbinding4.view.RxView; import org.w3c.dom.Text; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; /** * 上面一个课程,下面一个list展示所有读过课程的用户,有立即参赛 * RACE_TEMPLATE_3 */ public class ModelViewE extends FrameLayout { Context mContext; private LayoutInflater mLayoutInflater; private onItemClickListener mItemClickListener; private ImageView mBackgroundImg; ConstraintLayout mCourseLayout; FrameLayout mEnterMatch; FrameLayout mshowRule; RecyclerView mRecyclerView; ImageView mIcon; TextView mName; TextView mComment; TextView mThumb; TextView mStart; ImageView mNoRankListImg; public ModelViewE(@NonNull Context context) { super(context); mContext = context; mLayoutInflater = LayoutInflater.from(context); } public ModelViewE(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public ModelViewE(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void initView() { EfunboxUtil.initDesignSize(mContext); LayoutParams layoutParams = new LayoutParams(SizeUtils.dp2px(mContext, 428) , SizeUtils.dp2px(mContext, 598)); this.setLayoutParams(layoutParams); View modelEView = mLayoutInflater.inflate(R.layout.cusview_model_view_e, null); mBackgroundImg = modelEView.findViewById(R.id.cusview_model_view_e_background); mshowRule = modelEView.findViewById(R.id.cusview_model_view_e_show_rule); mCourseLayout = modelEView.findViewById(R.id.cusview_cusview_model_view_e_course_layout); mEnterMatch = modelEView.findViewById(R.id.cusview_model_view_e_enter_match); mIcon = modelEView.findViewById(R.id.cusview_model_view_e_icon); mName = modelEView.findViewById(R.id.cusview_model_view_e_name); mComment = modelEView.findViewById(R.id.cusview_model_view_e_allcount_num); mThumb = modelEView.findViewById(R.id.cusview_model_view_e_thumb_num); mStart = modelEView.findViewById(R.id.cusview_model_view_e_start_num); mRecyclerView = modelEView.findViewById(R.id.cusview_model_view_e_recyclerview); mNoRankListImg = modelEView.findViewById(R.id.cusview_model_view_e_noranklist); mNoRankListImg.setVisibility(View.GONE); addView(modelEView); } public void setView(String bgUrl, ModelBean bean, onItemClickListener listener) { mItemClickListener = listener; if (!TextUtils.isEmpty(bgUrl)) { GlideUtils.loadImageSizeKipMemoryCache(mContext, bgUrl, mBackgroundImg); } else { GlideUtils.loadImageSizeKipMemoryCache(mContext, R.drawable.test_lijicansai, mBackgroundImg); } GlideUtils.loadRoundCircleImage(mContext, bean.getReadUserList().get(0).getExample().getShareImg(), mIcon, SizeUtils.dp2px(mContext, 10)); mName.setText(bean.getReadUserList().get(0).getExample().getTitle()); mComment.setText(bean.getReadUserList().get(0).getExample().getCommentAmount()); mThumb.setText(bean.getReadUserList().get(0).getExample().getLikeAmount()); mStart.setText(bean.getReadUserList().get(0).getExample().getFavoritesAmount()); RxView.clicks(mCourseLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickEnter(bean); }); RxView.clicks(mEnterMatch).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickEnter(bean); }); RxView.clicks(mshowRule).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickRule(bean); }); mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); if (bean.getReadUserList().get(0).getTopList() != null && bean.getReadUserList().get(0).getTopList().size() != 0) { ModelViewEAdapter adapter = new ModelViewEAdapter(mContext, bean.getReadUserList().get(0).getTopList()); mRecyclerView.setAdapter(adapter); } else { mRecyclerView.setVisibility(View.GONE); mNoRankListImg.setVisibility(View.VISIBLE); } } public class ModelViewEAdapter extends RecyclerView.Adapter<ModelViewEViewHolder> { public List<UserRecordBean> mListData; public ModelViewEAdapter(Context context, List<UserRecordBean> listData) { mContext = context; mListData = listData; } @NonNull @Override public ModelViewEViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { EfunboxUtil.initDesignSize(mContext); return new ModelViewEViewHolder(mLayoutInflater.inflate(R.layout.adapter_item_cusview_model_view_c, parent, false)); } @Override public void onBindViewHolder(@NonNull ModelViewEViewHolder holder, @SuppressLint("RecyclerView") int position) { switch (position) { case 0: holder.mItemIcon.setBackgroundResource(R.drawable.ranklist_one); holder.mScore.setTextColor(Color.parseColor("#FF6984")); break; case 1: holder.mItemIcon.setBackgroundResource(R.drawable.ranklist_two); holder.mScore.setTextColor(Color.parseColor("#FF6984")); break; case 2: holder.mItemIcon.setBackgroundResource(R.drawable.ranklist_three); holder.mScore.setTextColor(Color.parseColor("#FF6984")); break; default: holder.mItemIcon.setText((position + 1) + ""); break; } if (!TextUtils.isEmpty(mListData.get(position).getUser().getNickName())) { holder.mNickName.setText(mListData.get(position).getUser().getNickName()); } else { if (!TextUtils.isEmpty(mListData.get(position).getUser().getWechatName())) { holder.mNickName.setText(mListData.get(position).getUser().getWechatName()); } else { if (!TextUtils.isEmpty(mListData.get(position).getUser().getMobile())) { holder.mNickName.setText(mListData.get(position).getUser().getMobile()); } else { holder.mNickName.setText(mListData.get(position).getUser().getEid()); } } } if (holder.mNickName.getText().toString().length() > 11) { holder.mNickName.setText(holder.mNickName.getText().toString().substring(0, 10) + "..."); } holder.mScore.setText(mListData.get(position).getUserRead().getScore() + "分"); if (mItemClickListener != null) { RxView.clicks(holder.itemView).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickItem(holder.itemView, position, mListData.get(position)); }); } } @Override public int getItemCount() { return mListData.size(); } @Override public int getItemViewType(int position) { return position; } } public interface onItemClickListener { void clickItem(View view, int position, UserRecordBean bean); void clickRule(ModelBean bean); void clickEnter(ModelBean bean); } } class ModelViewEViewHolder extends RecyclerView.ViewHolder { TextView mItemIcon; TextView mNickName; TextView mScore; public ModelViewEViewHolder(@NonNull View itemView) { super(itemView); mItemIcon = itemView.findViewById(R.id.adapter_item_cusview_model_view_c_icon); mNickName = itemView.findViewById(R.id.adapter_item_cusview_model_view_c_nickname); mScore = itemView.findViewById(R.id.adapter_item_cusview_model_view_c_score); } }