package com.weikou.beibeivideo.ui.video;
|
|
import android.content.Context;
|
import android.graphics.Color;
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.text.TextUtils;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.TextView;
|
|
import com.weikou.beibeivideo.entity.VideoDetailInfo;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.util.VideoUtil;
|
|
public class EpisodeNewAdapter extends RecyclerView.Adapter {
|
|
public final static int TYPE_DIANYING = 1;
|
public final static int TYPE_DIANSHIJU = 2;
|
public final static int TYPE_DONGMAN = 4;
|
public final static int TYPE_ZONGYI = 3;
|
|
private VideoInfo videoInfo;
|
private int playingPosition;
|
private LayoutInflater layoutInflater;
|
private Context mContext;
|
|
private ISelectVideoEpisodeListener selectVideoEpisodeListener;
|
|
|
private int displayType;
|
|
public EpisodeNewAdapter(Context context, VideoInfo videoInfo, int displayType, int playingPosition, ISelectVideoEpisodeListener selectVideoEpisodeListener) {
|
this.videoInfo = videoInfo;
|
this.playingPosition = playingPosition;
|
layoutInflater = LayoutInflater.from(context);
|
this.mContext = context;
|
this.displayType = displayType;
|
this.selectVideoEpisodeListener = selectVideoEpisodeListener;
|
}
|
|
public void setPlayingPosition(int position){
|
this.playingPosition = position;
|
}
|
|
@NonNull
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
return new EpisodeViewHolder(layoutInflater.inflate(R.layout.item_episode, parent, false));
|
}
|
|
private void setDisplaySize(TextView tv) {
|
if (displayType == TYPE_DIANSHIJU || displayType == TYPE_DONGMAN) {
|
tv.setMinWidth(DimenUtils.dip2px(mContext, 52));
|
} else {
|
tv.setLines(3);
|
tv.setEllipsize(TextUtils.TruncateAt.END);
|
tv.setMinWidth(DimenUtils.dip2px(mContext, 180));
|
tv.setGravity(Gravity.START);
|
}
|
}
|
|
@Override
|
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
|
final VideoDetailInfo info = VideoUtil.videoEpisodeList.get(position);
|
EpisodeViewHolder viewHolder = (EpisodeViewHolder) holder;
|
setDisplaySize(viewHolder.tv_episode);
|
if (position == playingPosition) {
|
viewHolder.tv_episode.setBackgroundResource(R.drawable.shape_video_detail_episode_selected);
|
viewHolder.tv_episode.setTextColor(Color.parseColor("#FFFFFF"));
|
} else {
|
viewHolder.tv_episode.setBackgroundResource(R.drawable.shape_video_detail_episode_unselected);
|
viewHolder.tv_episode.setTextColor(Color.parseColor("#232323"));
|
}
|
|
viewHolder.tv_episode.setText(info.getTag());
|
viewHolder.tv_episode.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (selectVideoEpisodeListener != null)
|
selectVideoEpisodeListener.onClick(position, info);
|
}
|
});
|
|
}
|
|
@Override
|
public int getItemCount() {
|
if (videoInfo != null && VideoUtil.videoEpisodeList != null)
|
return VideoUtil.videoEpisodeList.size();
|
else
|
return 0;
|
}
|
|
class EpisodeViewHolder extends RecyclerView.ViewHolder {
|
TextView tv_episode;
|
|
public EpisodeViewHolder(View view) {
|
super(view);
|
tv_episode = view.findViewById(R.id.tv_episode);
|
}
|
}
|
|
|
public interface ISelectVideoEpisodeListener {
|
public void onClick(int position, VideoDetailInfo detailInfo);
|
}
|
|
}
|