package com.yuyh.sprintnba.ui.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.yuyh.easyadapter.recyclerview.EasyRVAdapter;
import com.yuyh.easyadapter.recyclerview.EasyRVHolder;
import com.yuyh.library.utils.DimenUtils;
import com.yuyh.library.utils.log.LogUtils;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseWebActivity;
import com.yuyh.sprintnba.http.api.RequestCallback;
import com.yuyh.sprintnba.http.api.tencent.TencentService;
import com.yuyh.sprintnba.http.bean.news.NewsItem;
import com.yuyh.sprintnba.http.bean.video.VideoInfo;
import com.yuyh.sprintnba.support.NoDoubleClickListener;
import com.yuyh.sprintnba.support.OnListItemClickListener;
import com.yuyh.sprintnba.utils.FrescoUtils;
import com.yuyh.sprintnba.utils.ItemAnimHelper;
import java.util.List;
import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard;
/**
* Created by Kyrie.Y on 2016/6/6.
*/
public class NewsAdapter extends EasyRVAdapter<NewsItem.NewsItemBean> {
private OnListItemClickListener<NewsItem.NewsItemBean> mOnItemClickListener = null;
private ItemAnimHelper helper = new ItemAnimHelper();
public NewsAdapter(List<NewsItem.NewsItemBean> data, Context context) {
super(context, data, R.layout.item_list_news_normal, R.layout.item_list_news_video);
}
public void setOnItemClickListener(OnListItemClickListener<NewsItem.NewsItemBean> mOnItemClickListener) {
this.mOnItemClickListener = mOnItemClickListener;
}
@Override
public int getLayoutIndex(int position, NewsItem.NewsItemBean item) {
if (item.atype.equals("2"))
return 1;
return 0;
}
@Override
protected void onBindData(final EasyRVHolder viewHolder, final int position, final NewsItem.NewsItemBean item) {
if (item.atype.equals("2")) { // 视频
final JCVideoPlayerStandard videoPlayer = viewHolder.getView(R.id.vpVideo);
// 近期腾讯视频真实地址解析后播放 提示“您未获授权,无法查看此网页。 HTTP403” 故同时支持跳转到网页播放
ImageView ivGoto = viewHolder.getView(R.id.ivGoto);
ivGoto.setOnClickListener(new NoDoubleClickListener() {
@Override
protected void onNoDoubleClick(View view) {
BaseWebActivity.start(mContext, item.url, "", true, true);
}
});
videoPlayer.setUp("", item.title);
if (TextUtils.isEmpty(item.realUrl)) {
TencentService.getVideoRealUrls(item.vid, new RequestCallback<VideoInfo>() {
@Override
public void onSuccess(VideoInfo real) {
if (real.vl.vi != null && real.vl.vi.size() > 0) {
String vid = real.vl.vi.get(0).vid;
String vkey = real.vl.vi.get(0).fvkey;
String url = real.vl.vi.get(0).ul.ui.get(0).url + vid + ".mp4?vkey=" + vkey;
item.realUrl = url;
LogUtils.i("title:" + item.title);
LogUtils.i("real-url:" + url);
videoPlayer.setUp(url, item.title);
}
}
@Override
public void onFailure(String message) {
LogUtils.i("real-url:" + message);
}
});
} else {
videoPlayer.setUp(item.realUrl, item.title);
}
videoPlayer.thumbImageView.setController(FrescoUtils.getController(item.imgurl, videoPlayer.thumbImageView));
viewHolder.setText(R.id.tvVideoTitle, item.title)
.setText(R.id.tvVideoTime, item.pub_time);
ViewGroup.LayoutParams params = videoPlayer.getLayoutParams();
params.height = DimenUtils.getScreenWidth() / 2;
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
videoPlayer.setLayoutParams(params);
} else {
SimpleDraweeView iv = viewHolder.getView(R.id.ivBannerImg);
if (iv != null) { // @bugreport NullPointerException
iv.setController(FrescoUtils.getController(item.imgurl, iv));
ViewGroup.LayoutParams params = iv.getLayoutParams();
params.height = DimenUtils.getScreenWidth() / 2;
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
iv.setLayoutParams(params);
}
viewHolder.setText(R.id.tvBannerTitle, item.title)
.setText(R.id.tvBannerTime, item.pub_time);
viewHolder.getItemView().setOnClickListener(new NoDoubleClickListener() {
@Override
protected void onNoDoubleClick(View view) {
if (mOnItemClickListener != null)
mOnItemClickListener.onItemClick(viewHolder.getItemView(), position, item);
}
});
}
helper.showItemAnim(viewHolder.getItemView(), position);
}
}