package com.ysvideo.zhibo.app.ui.video.adapter;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.ImageView;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.RequestManager;
|
import com.ysvideo.zhibo.app.R;
|
import com.ysvideo.zhibo.app.entity.video.VideoInfo;
|
import com.ysvideo.zhibo.app.ui.video.VideoDetailActivity;
|
import com.ysvideo.zhibo.lib.common.util.common.StringUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import me.jingbin.library.adapter.BaseByViewHolder;
|
import me.jingbin.library.adapter.BaseRecyclerAdapter;
|
|
public class ListVideoAdapter extends BaseRecyclerAdapter<VideoInfo> {
|
private RequestManager glide;
|
private boolean mSelectedMode;
|
private List<String> mSelectedIds;
|
private List<String> mThirdTypes;
|
|
|
public ListVideoAdapter(List<VideoInfo> videoInfos) {
|
super(R.layout.item_fav, videoInfos);
|
this.mSelectedIds = new ArrayList<>();
|
this.mThirdTypes = new ArrayList<>();
|
}
|
|
@Override
|
protected void bindView(BaseByViewHolder<VideoInfo> holder, VideoInfo bean, int position) {
|
glide = Glide.with(holder.itemView.getContext());
|
final String id = bean.getId();
|
final String thirdtype = bean.getThirdType();
|
try {
|
glide.load(bean.getPicture())
|
.placeholder(R.drawable.ic_default_cover)
|
.error(R.drawable.ic_default_cover)
|
.into((ImageView) holder.getView(R.id.iv_cover));
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
holder.setText(R.id.tv_title, bean.getName());
|
holder.setText(R.id.tv_watch_time, StringUtils.isBlank(bean
|
.getTag()) ? "" : bean.getTag());
|
|
|
if (!mSelectedMode) {
|
holder.setVisible(R.id.chb_delete, false);
|
holder.itemView.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
Intent intent = new Intent(v.getContext(),
|
VideoDetailActivity.class);
|
intent.putExtra("video_info", bean);
|
v.getContext().startActivity(intent);
|
}
|
});
|
} else {
|
holder.getView(R.id.chb_delete).setVisibility(View.VISIBLE);
|
|
|
holder.itemView.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
if (mSelectedIds.contains(id)) {
|
mSelectedIds.remove(id);
|
mThirdTypes.remove(thirdtype);
|
} else {
|
mSelectedIds.add(id);
|
mThirdTypes.add(thirdtype);
|
}
|
|
if (getdeleteNumber != null)
|
getdeleteNumber.onGetNum(mSelectedIds.size());
|
holder.setChecked(R.id.chb_delete, mSelectedIds.contains(id));
|
}
|
});
|
holder.getView(R.id.chb_delete).setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
if (mSelectedIds.contains(id)) {
|
mSelectedIds.remove(id);
|
mThirdTypes.remove(thirdtype);
|
} else {
|
mSelectedIds.add(id);
|
mThirdTypes.add(thirdtype);
|
}
|
if (getdeleteNumber != null)
|
getdeleteNumber.onGetNum(mSelectedIds.size());
|
holder.setChecked(R.id.chb_delete, mSelectedIds.contains(id));
|
}
|
});
|
holder.setChecked(R.id.chb_delete, mSelectedIds.contains(id));
|
}
|
|
|
}
|
|
|
private IGetDeleteCallback getdeleteNumber = null;
|
|
public void setDeleteCallback(IGetDeleteCallback getdeleteNumber) {
|
this.getdeleteNumber = getdeleteNumber;
|
}
|
|
|
public List<String> getSelectedIds() {
|
return mSelectedIds;
|
}
|
|
public List<String> getThirdTypes() {
|
return mThirdTypes;
|
}
|
|
public boolean isSelectedMode() {
|
return mSelectedMode;
|
}
|
|
public void setSelectedMode(boolean selectedMode) {
|
this.mSelectedMode = selectedMode;
|
notifyDataSetChanged();
|
}
|
|
public void selectAll() {
|
mSelectedIds.clear();
|
for (VideoInfo info : getData()) {
|
mSelectedIds.add(info.getId());
|
mThirdTypes.add(info.getThirdType());
|
}
|
|
if (getdeleteNumber != null)
|
getdeleteNumber.onGetNum(mSelectedIds.size());
|
notifyDataSetChanged();
|
}
|
|
|
public interface IGetDeleteCallback {
|
void onGetNum(int count);
|
}
|
}
|