package com.hanju.video.app.ui.recommend;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.BaseAdapter;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.RequestManager;
|
import com.hanju.video.app.R;
|
import com.hanju.video.app.entity.video.VideoInfo;
|
import com.hanju.video.app.ui.media.VideoDetailActivity;
|
import com.hanju.lib.library.widget.RatioLayout;
|
|
import java.util.HashMap;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
/**
|
* 分类专题适配器
|
*
|
* @author Mr.Zhou
|
*/
|
public class DiscoverVideosAdapter extends BaseAdapter {
|
private RequestManager glide;
|
private List<VideoInfo> list;
|
private Context context;
|
public static Map<String, Integer> watchCountMap = new HashMap<>();
|
public static Map<String, Integer> likeCountMap = new HashMap<>();
|
private static Set<String> likeSet = new HashSet<>();
|
|
public DiscoverVideosAdapter(List<VideoInfo> list, Context context) {
|
super();
|
this.list = list;
|
this.context = context;
|
this.glide = Glide.with(context);
|
}
|
|
@Override
|
public int getCount() {
|
return list == null ? 0 : list.size();
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return list.get(position);
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return 0;
|
}
|
|
@Override
|
public View getView(int position, View convertView, ViewGroup parent) {
|
ViewHolder viewHolder;
|
if (convertView == null) {
|
convertView = LayoutInflater.from(parent.getContext()).inflate(
|
R.layout.item_category_unique_lv, null);
|
viewHolder = new ViewHolder();
|
viewHolder.iv_pic = convertView
|
.findViewById(R.id.item_unique_iv);
|
viewHolder.fl_ad = convertView
|
.findViewById(R.id.fl_ad);
|
viewHolder.tv_name = convertView
|
.findViewById(R.id.item_unique_tv);
|
viewHolder.rl_discover = convertView
|
.findViewById(R.id.rl_discover);
|
viewHolder.tv_view_count = convertView
|
.findViewById(R.id.tv_view_count);
|
viewHolder.cb_like_count = convertView
|
.findViewById(R.id.cb_like_count);
|
viewHolder.tv_time=convertView
|
.findViewById(R.id.tv_time);
|
|
convertView.setTag(viewHolder);
|
} else {
|
viewHolder = (ViewHolder) convertView.getTag();
|
}
|
VideoInfo bean = list.get(position);
|
viewHolder.fl_ad.setVisibility(bean.getAdView() == null ? View.GONE : View.VISIBLE);
|
viewHolder.tv_name.setVisibility(bean.getAdView() == null ? View.VISIBLE : View.GONE);
|
viewHolder.iv_pic.setVisibility(bean.getAdView() == null ? View.VISIBLE : View.GONE);
|
if (bean.getAdView() != null) {
|
viewHolder.rl_discover.setRatio(0.7f);
|
bean.getAdView().render();
|
FrameLayout adParent = (FrameLayout) bean.getAdView().getParent();
|
if (adParent != null) {
|
adParent.removeAllViews();
|
}
|
viewHolder.fl_ad.addView(bean.getAdView());
|
} else {
|
viewHolder.rl_discover.setRatio(0.579f);
|
try {
|
glide.load(bean.getPicture()).placeholder(R.color.theme).error(R.color.theme).transition(withCrossFade()).into(viewHolder.iv_pic);
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
viewHolder.tv_name.setText(bean.getName());
|
if (watchCountMap.get(bean.getId()) == null) {
|
watchCountMap.put(bean.getId(), (int) (Math.random() * 1000));
|
}
|
|
if (likeCountMap.get(bean.getId()) == null) {
|
likeCountMap.put(bean.getId(), (int) (Math.random() * 1000));
|
}
|
|
viewHolder.cb_like_count.setText(likeCountMap.get(bean.getId() + "") + "");
|
viewHolder.tv_view_count.setText(watchCountMap.get(bean.getId() + "") + "");
|
viewHolder.tv_time.setText(bean.getDuration()==null?"":bean.getDuration());
|
|
//已经点赞
|
if (likeSet.contains(bean.getId())) {
|
viewHolder.cb_like_count.setChecked(true);
|
} else {
|
viewHolder.cb_like_count.setChecked(false);
|
}
|
viewHolder.cb_like_count.setTag(bean.getId());
|
viewHolder.cb_like_count.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
String id = viewHolder.cb_like_count.getTag() + "";
|
if (isChecked) {
|
likeSet.add(id);
|
likeCountMap.put(id, likeCountMap.get(id) + 1);
|
} else {
|
likeSet.remove(viewHolder.cb_like_count.getTag() + "");
|
likeCountMap.put(id, likeCountMap.get(id) - 1);
|
}
|
viewHolder.cb_like_count.setText(likeCountMap.get(bean.getId() + "") + "");
|
|
}
|
});
|
|
|
}
|
toUniqueActivity(bean, convertView);
|
|
return convertView;
|
}
|
|
private void toUniqueActivity(final VideoInfo info, final View convertView) {
|
// 专题item跳转事件
|
convertView.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (info.getAdView() == null) {
|
Intent intent = new Intent(convertView.getContext(),
|
VideoDetailActivity.class);
|
intent.putExtra("video_info", info);
|
convertView.getContext().startActivity(intent);
|
}
|
|
}
|
});
|
}
|
|
static class ViewHolder {
|
TextView tv_name;
|
ImageView iv_pic;
|
FrameLayout fl_ad;
|
RatioLayout rl_discover;
|
TextView tv_view_count;
|
CheckBox cb_like_count;
|
TextView tv_time;
|
}
|
}
|