package com.weikou.beibeivideo.ui.video;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.support.v7.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
import com.bytedance.sdk.openadsdk.TTAdDislike;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.qq.e.ads.nativ.express2.AdEventListener;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
|
import com.weikou.beibeivideo.entity.video.VideoContent;
|
import com.weikou.beibeivideo.entity.recommend.holder.RecommendVideoAdHolder;
|
import com.weikou.beibeivideo.entity.video.holder.VideoHolder;
|
import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
|
import com.weikou.beibeivideo.util.ad.AdUtil;
|
import com.weikou.beibeivideo.util.ad.ExpressAdManager;
|
import com.yeshi.buwanshequ.R;
|
|
import java.text.DecimalFormat;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class VideoColumn2Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
private Activity mContext;
|
private List<VideoContent> contentList;
|
private ExpressAdManager expressAdManager;
|
private LayoutInflater inflater;
|
|
|
public VideoColumn2Adapter(Activity context, List<VideoInfo> videoList, boolean needAd) {
|
this.mContext = context;
|
this.contentList = new ArrayList<>();
|
inflater = LayoutInflater.from(context);
|
for (VideoInfo video : videoList) {
|
contentList.add(VideoContent.createVideoContent(video));
|
}
|
|
if (needAd) {
|
if (expressAdManager == null)
|
expressAdManager = new ExpressAdManager(AdUtil.getSmallExpressAdType(), mContext);
|
expressAdManager.loadRecommendCategorySmallAd(new ExpressAdManager.IAdLoadListener() {
|
@Override
|
public void onSuccess(List<ExpressAdContainer> adList) {
|
if (adList != null && adList.size() > 0) {
|
if (contentList != null && contentList.size() > 0 && contentList.get(0).getType() == VideoContent.TYPE_VIDEO) {
|
contentList.add(0, VideoContent.createAdContent(adList.get(0)));
|
notifyDataSetChanged();
|
}
|
}
|
}
|
});
|
}
|
}
|
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int type) {
|
switch (type) {
|
case VideoContent.TYPE_AD:
|
return new RecommendVideoAdHolder(inflater.inflate(R.layout.item_ad_list_small, parent, false));
|
case VideoContent.TYPE_VIDEO:
|
return new VideoHolder(inflater.inflate(R.layout.item_movie, parent, false));
|
}
|
return null;
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int p) {
|
final VideoContent content = contentList.get(p);
|
if (viewHolder instanceof VideoHolder) {
|
VideoHolder holder = (VideoHolder) viewHolder;
|
final VideoInfo info = content.getVideo();
|
//设置内容
|
holder.ll_video_show.setVisibility(View.VISIBLE);
|
if (StringUtils.isEmpty(info.getPicture())) {
|
Glide.with(mContext).load(info.getPicture())
|
.placeholder(R.drawable.ic_default_cover)
|
.error(R.drawable.ic_default_cover)
|
.centerCrop().crossFade()
|
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
|
.into(holder.iv_movie_cover);
|
} else {
|
try {
|
Glide.with(mContext).load(info.getPicture())
|
.placeholder(R.drawable.ic_default_cover)
|
.error(R.drawable.ic_default_cover)
|
.centerCrop().crossFade()
|
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
|
.into(holder.iv_movie_cover);
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
}
|
holder.tv_movie_title.setText(info.getName());
|
holder.tv_movie_rating.setText(StringUtils.isBlank(info
|
.getTag()) ? "" : info
|
.getTag());
|
DecimalFormat df = new DecimalFormat("###.0");
|
holder.tv_movie_play_num.setText(StringUtils.isBlank(info
|
.getWatchCount()) ? "0" : (Integer.parseInt(info
|
.getWatchCount())) / 10000 > 0 ? df.format(Integer.parseInt(info
|
.getWatchCount()) / 10000f) + "万" : info
|
.getWatchCount());
|
holder.tv_movie_comment_num.setText(StringUtils.isBlank(info.getCommentCount()) ? "0" : info.getCommentCount());
|
holder.ll_video_show
|
.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(final View v) {
|
//跳转到商品视频播放页
|
myClick(info, v);
|
}
|
});
|
} else if (viewHolder instanceof RecommendVideoAdHolder) {//广告
|
final RecommendVideoAdHolder holder = (RecommendVideoAdHolder) viewHolder;
|
holder.fl_container.removeAllViews();
|
|
final ExpressAdContainer ad = content.getAd();
|
if (ad == null) {//广告为空
|
holder.view.setVisibility(View.GONE);
|
} else {
|
holder.view.setVisibility(View.VISIBLE);
|
if (ad.getGdt() != null) {
|
holder.rl_container.setRatio(0.88f);
|
holder.tv_movie_title.setVisibility(View.GONE);
|
// ad.getGdt().setAdEventListener(new AdEventListener() {
|
// @Override
|
// public void onClick() {
|
//
|
// }
|
//
|
// @Override
|
// public void onExposed() {
|
//
|
// }
|
//
|
// @Override
|
// public void onRenderSuccess() {
|
// holder.fl_container.addView(ad.getGdt().getAdView());
|
// }
|
//
|
// @Override
|
// public void onRenderFail() {
|
//
|
// }
|
//
|
// @Override
|
// public void onAdClosed() {
|
// contentList.remove(content);
|
// notifyDataSetChanged();
|
// }
|
// });
|
|
ad.getGdt().render();
|
holder.fl_container.addView(ad.getGdt());
|
holder.tv_movie_play_num.setText("112");
|
|
|
|
} else if (ad.getCsj() != null) {
|
holder.rl_container.setRatio(0.88f);
|
holder.tv_movie_title.setVisibility(View.GONE);
|
ad.getCsj().setDislikeCallback(mContext, new TTAdDislike.DislikeInteractionCallback() {
|
|
@Override
|
public void onSelected(int i, String s) {
|
contentList.remove(content);
|
notifyDataSetChanged();
|
}
|
|
@Override
|
public void onCancel() {
|
|
}
|
|
@Override
|
public void onRefuse() {
|
|
}
|
});
|
ad.getCsj().render();
|
holder.fl_container.addView(ad.getCsj().getExpressAdView());
|
}
|
}
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = contentList.size();
|
return count % 2 == 0 ? count : count - 1;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
return this.contentList.get(position).getType();
|
}
|
|
|
private void myClick(VideoInfo info, final View v) {
|
Intent intent = new Intent(v.getContext(), VideoDetailActivity.class);
|
intent.putExtra("video_info", info);
|
v.getContext().startActivity(intent);
|
}
|
}
|