package com.mugua.mgvideo.ui.recommend;
|
|
import android.annotation.SuppressLint;
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.graphics.Color;
|
import android.graphics.Typeface;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.target.DrawableImageViewTarget;
|
import com.bytedance.sdk.dp.DPArticleLevel;
|
import com.bytedance.sdk.dp.DPComponentPosition;
|
import com.bytedance.sdk.dp.DPSdk;
|
import com.bytedance.sdk.dp.DPWidgetTextChainParams;
|
import com.bytedance.sdk.dp.DPWidgetVideoCardParams;
|
import com.bytedance.sdk.dp.IDPElement;
|
import com.bytedance.sdk.dp.IDPVideoCardListener;
|
import com.bytedance.sdk.dp.IDPWidgetFactory;
|
import com.lcjian.library.util.common.DimenUtils;
|
import com.lcjian.library.widget.RatioLayout;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.R;
|
import com.mugua.mgvideo.entity.HomeType;
|
import com.mugua.mgvideo.entity.HomeVideo;
|
import com.mugua.mgvideo.entity.recommend.RecommendContent;
|
import com.mugua.mgvideo.entity.video.holder.FooterViewHolder;
|
import com.mugua.mgvideo.entity.video.holder.HeaderViewHolder;
|
import com.mugua.mgvideo.ui.category.StarsActivity;
|
import com.mugua.mgvideo.ui.common.VideosLiveActivity;
|
import com.mugua.mgvideo.ui.video.VideoRecommendAdapter;
|
import com.yeshi.base.utils.JsonUtil;
|
import com.yeshi.base.entity.ad.ExpressAdContainer;
|
import com.yeshi.base.entity.video.VideoType;
|
import com.yeshi.base.utils.JumpActivityUtil;
|
import com.yeshi.base.utils.ad.AdUtil;
|
import com.yeshi.base.utils.ad.ExpressAdManager;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.ysh.wpc.appupdate.util.StringUtils;
|
|
import org.apache.http.Header;
|
import org.json.JSONArray;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.TreeSet;
|
|
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
public class RecommendNewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
|
private final static String TAG = "RecommendNewAdapter";
|
|
private Activity mContext;
|
List<Object> contentList;
|
private LayoutInflater inflater;
|
private TreeSet mADSet = new TreeSet();
|
|
public final int TYPE_HEADER = 10001;
|
public final int TYPE_FOOTER = 10002;
|
|
|
private View headerView;
|
private View footerView;
|
|
private FrameLayout mNewsLinkLayout;
|
private IDPElement mTextChainElement;
|
|
private FrameLayout mVideoCardLayout;
|
private TextView mVideoCardTitle;
|
private IDPElement mVideoCardElement;
|
|
public void setHeaderView(View view) {
|
this.headerView = view;
|
}
|
|
public void setFooterView(View view) {
|
this.footerView = view;
|
if (contentList != null) {
|
notifyItemChanged(contentList.size() + (headerView != null ? 1 : 0));
|
}
|
}
|
|
public void removeFooterView() {
|
if (footerView != null) {
|
notifyItemRemoved(contentList.size() + (headerView != null ? 1 : 0));
|
this.footerView = null;
|
}
|
}
|
|
|
public RecommendNewAdapter(Activity context, List contentList, int recyclerViewWidth) {
|
this.mContext = context;
|
this.contentList = contentList;
|
this.recyclerViewWidth = recyclerViewWidth;
|
inflater = LayoutInflater.from(mContext);
|
}
|
|
/**
|
* 添加数据项
|
*
|
* @param item
|
*/
|
public void addNormalItem(HomeType item) {
|
contentList.add(item);
|
}
|
|
/**
|
* 获取广告数量
|
*
|
* @return
|
*/
|
public int getAdCount() {
|
return mADSet.size();
|
}
|
|
/**
|
* 添加广告到指定位置
|
*
|
* @param ad
|
* @param position
|
*/
|
public void addAdToPosition(ExpressAdContainer ad, int position) {
|
if (position >= 0 && position < contentList.size()) {
|
contentList.add(position, ad);
|
mADSet.add(position);
|
}
|
Log.i(TAG, "addAdToPosition");
|
}
|
|
public void addAd(ExpressAdContainer ad) {
|
contentList.add(ad);
|
Log.i(TAG, "addAd");
|
}
|
|
public void removeAd(ExpressAdContainer ad) {
|
if (mADSet != null)
|
for (Iterator<Integer> its = mADSet.iterator(); its.hasNext(); ) {
|
int p = its.next();
|
if (p < contentList.size() && contentList.get(p) == ad) {
|
mADSet.remove(p);
|
contentList.remove(p);
|
notifyDataSetChanged();
|
}
|
}
|
}
|
|
|
public void removeAllAd() {
|
if (contentList != null)
|
for (int i = 0; i < contentList.size(); i++) {
|
if (contentList.get(i) instanceof ExpressAdContainer) {
|
contentList.remove(i);
|
i--;
|
}
|
}
|
mADSet.clear();
|
}
|
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
switch (viewType) {
|
case TYPE_HEADER:
|
return new HeaderViewHolder(headerView);
|
case TYPE_FOOTER:
|
return new FooterViewHolder(footerView);
|
case RecommendContent.TYPE_HOMETYPE:
|
return new HomeTypeHolder(inflater.inflate(R.layout.item_recommend_home_type, parent, false), new RecyclerView.RecycledViewPool());
|
case RecommendContent.TYPE_AD:
|
return new AdHolder(inflater.inflate(R.layout.item_recommend_home_type_ad, parent, false));
|
|
case RecommendContent.TYPE_NEWS:
|
//加载文字链
|
loadTextChainWidget();
|
return new NewsHolder(inflater.inflate(R.layout.item_recommend_news, parent, false));
|
|
case RecommendContent.TYPE_DRAW_VIDEOS:
|
// 加载 video card 组件
|
loadVideoCard();
|
return new DrawVideosHolder(inflater.inflate(R.layout.item_recommend_draw_video, parent, false));
|
}
|
return null;
|
}
|
|
|
private int recyclerViewWidth = -1;
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, @SuppressLint("RecyclerView") int i) {
|
if (viewHolder instanceof HeaderViewHolder)
|
return;
|
if (viewHolder instanceof FooterViewHolder)
|
return;
|
int p = i;
|
if (headerView != null)
|
p--;
|
p -= (AdUtil.isCanInitCSJ() ? 2 : 0);
|
if (viewHolder instanceof HomeTypeHolder) {
|
final HomeType homeType = (HomeType) contentList.get(p);
|
|
|
final HomeTypeHolder holder = (HomeTypeHolder) viewHolder;
|
|
if (homeType == null || homeType.getHomeVideoList().size() == 0) {
|
holder.view.setVisibility(View.GONE);
|
return;
|
}
|
holder.view.setVisibility(View.VISIBLE);
|
|
|
if (homeType.getVideoInfoList() == null) {
|
homeType.setVideoInfoList(new ArrayList<>());
|
}
|
|
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
holder.view.setLayoutParams(params);
|
//是否为广告
|
if (homeType.getAd() != null) {
|
holder.fl_ad.setVisibility(View.VISIBLE);
|
holder.fl_content.setVisibility(View.GONE);
|
holder.rl_ad.setRatio(homeType.getAd().getPictureRate().floatValue());
|
try {
|
Glide.with(mContext).load(homeType.getAd().getPicture()).transition(withCrossFade())
|
.apply(new RequestOptions().placeholder(R.drawable.shape_default_cover).error(R.drawable.shape_default_cover))
|
.into(new DrawableImageViewTarget(holder.iv_ad, true));
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
|
holder.view.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
|
JumpActivityUtil.jumpPage(mContext, homeType.getAd().getJumpDetail(), homeType.getAd().getParams() != null ? JSONObject.parseObject(homeType.getAd().getParams().replace(
|
"\\" + "\"", "\"")) : null);
|
}
|
});
|
|
return;
|
}
|
|
holder.fl_ad.setVisibility(View.GONE);
|
holder.fl_content.setVisibility(View.VISIBLE);
|
|
|
homeType.getVideoInfoList().clear();
|
int bigPictureIndex = -1;
|
if (homeType.getHomeVideoList() != null)
|
for (int j = 0; j < homeType.getHomeVideoList().size(); j++) {
|
if (homeType.getHomeVideoList().get(j).isBigPicture())
|
bigPictureIndex = j;
|
homeType.getVideoInfoList().add(homeType.getHomeVideoList().get(j).getVideo());
|
}
|
|
//隐藏
|
if (homeType.getVideoInfoList() != null && homeType.getVideoInfoList().size() > 0)
|
holder.view.setVisibility(View.VISIBLE);
|
else
|
holder.view.setVisibility(View.GONE);
|
|
VideoRecommendAdapter adapter = null;
|
|
holder.rv_content.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
|
|
|
int contentWidth = recyclerViewWidth - DimenUtils.dip2px(mContext, 16);
|
if (homeType.getColumns() > 3) {//第一排为小视频
|
adapter = new VideoRecommendAdapter(mContext, mContext, homeType.getVideoInfoList(), homeType.isNeedAd(), Integer.MAX_VALUE, "recommend", homeType.getName(), null, new ExpressAdManager.IAdShowListener() {
|
@Override
|
public void show() {
|
holder.rv_content.scrollToPosition(0);
|
}
|
});
|
adapter.initRecyclerViewDisplayWidthRow1(holder.rv_content, contentWidth);
|
} else {
|
adapter = new VideoRecommendAdapter(mContext, mContext, homeType.getVideoInfoList(), homeType.isNeedAd(), homeType.getColumns(), "recommend", homeType.getName(), null);
|
if (homeType.getColumns() == 2)
|
adapter.initRecyclerViewDisplayWidthColumn2(holder.rv_content, contentWidth, bigPictureIndex);
|
else if (homeType.getColumns() == 3)
|
adapter.initRecyclerViewDisplayWidthColumn3(holder.rv_content, contentWidth);
|
else
|
adapter.initRecyclerViewDisplayWidthRow1(holder.rv_content, contentWidth);
|
}
|
|
|
if (homeType.getVideoInfoList() != null && homeType.getVideoInfoList().size() > 0) {
|
holder.rv_content.setAdapter(adapter);
|
}
|
|
|
holder.tv_category_name.setText(homeType.getName());
|
|
|
//更多
|
if (Boolean.parseBoolean(homeType.getHasMore())) {
|
holder.tv_more.setVisibility(View.VISIBLE);
|
if (!StringUtils.isNullOrEmpty(homeType.getMoreTag())) {
|
holder.tv_more.setText(homeType.getMoreTag());
|
} else {
|
holder.tv_more.setText("更多" + homeType.getName());
|
}
|
} else {
|
holder.tv_more.setVisibility(View.GONE);
|
}
|
|
int refreshP = homeType.getRefreshPosition();
|
//右上角且有更多选项
|
if (refreshP == 1 && Boolean.parseBoolean(homeType.getHasMore())) {
|
refreshP = 2;//移动至下方
|
}
|
|
//不足一页不显示刷新
|
if (homeType.getCount() <= homeType.getNumber()) {
|
refreshP = 0;
|
}
|
|
|
switch (refreshP) {
|
case 0:
|
holder.tv_refresh.setVisibility(View.GONE);
|
holder.tv_tag_refresh.setVisibility(View.GONE);
|
break;
|
|
case 1:
|
holder.tv_refresh.setVisibility(View.GONE);
|
holder.tv_tag_refresh.setVisibility(View.VISIBLE);
|
break;
|
|
case 2:
|
holder.tv_refresh.setVisibility(View.VISIBLE);
|
holder.tv_tag_refresh.setVisibility(View.GONE);
|
break;
|
}
|
//刷新的动作
|
OnClickListener refreshListener = new OnClickListener() {
|
|
|
@Override
|
public void onClick(View v) {
|
MGVideoAPI.getHomeVideoList(mContext, homeType.getId(), homeType.getCurrentPage() + 1, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
org.json.JSONObject data = jsonObject.optJSONObject("Data");
|
int page = data.optInt("page");
|
homeType.setCurrentPage(page);
|
//解析数据
|
homeType.getHomeVideoList().clear();
|
//解析HomeVideo数据
|
int count = data.optInt("count");
|
homeType.setCount(count);
|
|
JSONArray homeArray = data
|
.optJSONArray("list");
|
List<HomeVideo> homeList = new ArrayList<>();
|
if (homeArray != null && homeArray.length() > 0) {
|
for (int j = 0; j < homeArray.length(); j++) {
|
homeList.add(JsonUtil.videoGson.fromJson(homeArray
|
.optJSONObject(j).toString(),
|
HomeVideo.class));
|
}
|
}
|
|
homeType.getHomeVideoList().clear();
|
homeType.getHomeVideoList().addAll(homeList);
|
//改变当前选项
|
notifyItemChanged(i);
|
}
|
}
|
});
|
|
|
}
|
};
|
holder.tv_refresh.setOnClickListener(refreshListener);
|
holder.tv_tag_refresh.setOnClickListener(refreshListener);
|
|
|
holder.tv_more
|
.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
Intent intent = null;
|
if (homeType.getId().equalsIgnoreCase("1111")) {
|
intent = new Intent(v.getContext(),
|
VideosLiveActivity.class);
|
intent.putExtra("home_type", homeType.getId());
|
intent.putExtra("title", homeType.getName());
|
v.getContext().startActivity(intent);
|
} else if (homeType.getId().equalsIgnoreCase("9998")) {
|
intent = new Intent(v.getContext(), StarsActivity.class);
|
v.getContext().startActivity(intent);
|
} else {
|
|
VideoType type = JsonUtil.videoGson.fromJson(homeType.getParams().replace(
|
"\\" + "\"", "\""), VideoType.class);
|
try {
|
intent = new Intent(v.getContext(), Class.forName(homeType.getActivity()));
|
intent.putExtra("video_type", type);
|
intent.putExtra("type_name", type.getName());
|
intent.putExtra("isPush", false);
|
v.getContext().startActivity(intent);
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
});
|
|
|
} else if (viewHolder instanceof AdHolder) {
|
final AdHolder holder = (AdHolder) viewHolder;
|
holder.fl_ad.removeAllViews();
|
final ExpressAdContainer ad = (ExpressAdContainer) contentList.get(p);
|
if (ad != null) {
|
holder.ll_container.setVisibility(View.VISIBLE);
|
ExpressAdManager.fillAd(ad, holder.fl_ad);
|
} else {
|
holder.ll_container.setVisibility(View.GONE);
|
}
|
} else if (viewHolder instanceof NewsHolder) {
|
final NewsHolder holder = (NewsHolder) viewHolder;
|
mNewsLinkLayout = holder.fl_container;
|
|
} else if (viewHolder instanceof DrawVideosHolder) {
|
final DrawVideosHolder holder = (DrawVideosHolder) viewHolder;
|
mVideoCardLayout = holder.fl_container;
|
mVideoCardTitle = holder.tv_video_card_title;
|
}
|
}
|
|
|
/**
|
* 文字链组件
|
*/
|
private void loadTextChainWidget() {
|
if (!AdUtil.isCanInitCSJ()) {
|
return;
|
}
|
DPSdk.factory().loadTextChain(DPWidgetTextChainParams.obtain()
|
.articleLevel(DPArticleLevel.LEVEL_2) // 内容等级
|
.componentPosition(DPComponentPosition.TAB2)
|
.animationDuration(1000) // 动画时长
|
.backgroundColor(0xFFFFFFFF) // 背景颜色
|
// .iconDrawable(getResources().getDrawable(R.drawable.ic_launcher)) // icon标志
|
.iconHeight(16) // icon高度
|
.iconWidth(16) // icon宽度
|
.showDuration(3000) // 停留时长
|
.showIcon(true) // 是否展示icon
|
.showWatch(true) // 是否展示观看信息
|
.titleTextColor(0xFF595959) // 标题文字颜色
|
.titleTextSize(14) // 标题文字大小
|
.titleTypeface(Typeface.DEFAULT) // 标题文字字体
|
.watchTextColor(0xFFA0A0A0) // 观看文字颜色
|
.watchTextSize(12) // 观看文字大小
|
.watchTypeface(Typeface.DEFAULT), new IDPWidgetFactory.Callback() {
|
|
@Override
|
public void onError(int i, String s) {
|
|
}
|
|
@Override
|
public void onSuccess(IDPElement data) {
|
if (data == null) {
|
return;
|
}
|
mTextChainElement = data;
|
|
View view = mTextChainElement.getView();
|
if (view != null && mNewsLinkLayout != null) {
|
mNewsLinkLayout.removeAllViews();
|
mNewsLinkLayout.addView(view);
|
mTextChainElement.reportShow();
|
notifyDataSetChanged();
|
}
|
}
|
});
|
}
|
|
private void loadVideoCard() {
|
|
if (!AdUtil.isCanInitCSJ()) {
|
return;
|
}
|
|
DPWidgetVideoCardParams params = DPWidgetVideoCardParams.obtain()
|
.hideTitle(true)
|
.listener(new IDPVideoCardListener() {
|
@Override
|
public void onDPItemClick(Map<String, Object> map) {
|
log("onDPItemClick map = " + map.toString());
|
}
|
|
@Override
|
public void onDPLSwipeEnter() {
|
log("onDPLSwipeEnter");
|
}
|
|
@Override
|
public void onDPRequestStart(@Nullable Map<String, Object> map) {
|
log("onDPRequestStart");
|
}
|
|
@Override
|
public void onDPRequestSuccess(List<Map<String, Object>> list) {
|
if (list == null) {
|
return;
|
}
|
|
for (int i = 0; i < list.size(); i++) {
|
log("onDPRequestSuccess i = " + i + ", map = " + list.get(i).toString());
|
}
|
}
|
|
@Override
|
public void onDPRequestFail(int code, String msg, @Nullable Map<String, Object> map) {
|
if (map == null) {
|
log("onDPRequestFail code = " + code + ", msg = " + msg);
|
return;
|
}
|
log("onDPRequestFail code = " + code + ", msg = " + msg + ", map = " + map.toString());
|
}
|
|
@Override
|
public void onDPClientShow(@Nullable Map<String, Object> map) {
|
log("onDPClientShow");
|
}
|
|
@Override
|
public void onDPClickAuthorName(Map<String, Object> map) {
|
log("onDPClickAuthorName map = " + map.toString());
|
}
|
|
@Override
|
public void onDPClickAvatar(Map<String, Object> map) {
|
log("onDPClickAvatar map = " + map.toString());
|
}
|
|
@Override
|
public void onDPClickComment(Map<String, Object> map) {
|
log("onDPClickComment map = " + map.toString());
|
}
|
|
@Override
|
public void onDPClickLike(boolean isLike, Map<String, Object> map) {
|
log("onDPClickLike isLike = " + isLike + ", map = " + map.toString());
|
}
|
|
@Override
|
public void onDPVideoPlay(Map<String, Object> map) {
|
log("onDPVideoPlay map = " + map.toString());
|
}
|
|
@Override
|
public void onDPVideoPause(Map<String, Object> map) {
|
log("onDPVideoPause map = " + map.toString());
|
}
|
|
@Override
|
public void onDPVideoContinue(Map<String, Object> map) {
|
log("onDPVideoContinue map = " + map.toString());
|
}
|
|
@Override
|
public void onDPVideoOver(Map<String, Object> map) {
|
log("onDPVideoOver map = " + map.toString());
|
}
|
|
@Override
|
public void onDPVideoCompletion(Map<String, Object> map) {
|
log("onDPVideoCompletion map = " + map.toString());
|
}
|
})
|
.dislikeListener(mContext, new DPWidgetVideoCardParams.IDislikeListener() {
|
@Override
|
public void onSelected(String msg) {
|
// 如果 hideTitle 为 true,可以不做任何处理
|
log("dislike msg = " + msg);
|
if (mVideoCardLayout == null) {
|
return;
|
}
|
mVideoCardLayout.removeAllViews();
|
mVideoCardLayout.setVisibility(View.GONE);
|
mVideoCardTitle.setVisibility(View.GONE);
|
}
|
});
|
|
DPSdk.factory().loadSmallVideoCard(params, new IDPWidgetFactory.Callback() {
|
@Override
|
public void onError(int code, String msg) {
|
log("onError code = " + code + ", msg = " + msg);
|
}
|
|
@Override
|
public void onSuccess(IDPElement data) {
|
mVideoCardElement = data;
|
View view = data.getView();
|
if (view == null || mVideoCardLayout == null) {
|
return;
|
}
|
|
mVideoCardLayout.removeAllViews();
|
ViewGroup viewGroup = (ViewGroup) view.getParent();
|
if (viewGroup != null) {
|
viewGroup.removeAllViews();
|
}
|
mVideoCardLayout.addView(view);
|
mVideoCardElement.reportShow();
|
mVideoCardTitle.setVisibility(View.VISIBLE);
|
notifyDataSetChanged();
|
}
|
});
|
}
|
|
private static void log(String msg) {
|
Log.d(TAG, String.valueOf(msg));
|
}
|
|
|
@Override
|
public int getItemCount() {
|
int count = this.contentList.size();
|
if (headerView != null)
|
count++;
|
if (footerView != null)
|
count++;
|
if (AdUtil.isCanInitCSJ()) {
|
count += 2;
|
}
|
return count;
|
}
|
|
/**
|
* banner第一栏,视频内容第二栏,广告第三栏和最后一栏
|
*
|
* @param position
|
* @return
|
*/
|
//获取类型
|
@Override
|
public int getItemViewType(int position) {
|
if (position == 0) {
|
if (headerView != null)
|
return TYPE_HEADER;
|
}
|
|
if (headerView != null)
|
position--;
|
|
if (position >= contentList.size() + (AdUtil.isCanInitCSJ() ? 2 : 0))
|
return TYPE_FOOTER;
|
if (AdUtil.isCanInitCSJ()) {
|
if (position == 0) {
|
return RecommendContent.TYPE_NEWS;
|
} else if (position == 1) {
|
return RecommendContent.TYPE_DRAW_VIDEOS;
|
}
|
}
|
|
position -= (AdUtil.isCanInitCSJ() ? 2 : 0);
|
if (contentList.get(position) instanceof HomeType) {
|
return RecommendContent.TYPE_HOMETYPE;
|
} else {
|
return RecommendContent.TYPE_AD;
|
}
|
|
}
|
|
class HomeTypeHolder extends RecyclerView.ViewHolder {
|
LinearLayout fl_content;
|
FrameLayout fl_ad;
|
RatioLayout rl_ad;
|
TextView tv_category_name;
|
ImageView iv_ad;
|
TextView tv_more;
|
RecyclerView rv_content;
|
RelativeLayout rl_title_item;
|
TextView tv_refresh;
|
TextView tv_tag_refresh;
|
View view;
|
|
public HomeTypeHolder(View convertView, RecyclerView.RecycledViewPool recycledViewPool) {
|
super(convertView);
|
this.view = convertView;
|
rl_title_item = convertView
|
.findViewById(R.id.rl_title_item);
|
|
fl_content = convertView
|
.findViewById(R.id.fl_content);
|
|
fl_ad = convertView
|
.findViewById(R.id.fl_ad);
|
|
iv_ad = convertView
|
.findViewById(R.id.iv_ad);
|
|
rl_ad = convertView
|
.findViewById(R.id.rl_ad);
|
|
|
tv_category_name = convertView
|
.findViewById(R.id.tv_category_name);
|
tv_more = convertView
|
.findViewById(R.id.tv_more);
|
rv_content = convertView
|
.findViewById(R.id.rv_content);
|
|
tv_refresh = convertView
|
.findViewById(R.id.tv_refresh);
|
|
tv_tag_refresh = convertView
|
.findViewById(R.id.tv_tag_refresh);
|
|
|
if (recycledViewPool != null)
|
rv_content.setRecycledViewPool(recycledViewPool);
|
}
|
}
|
|
class AdHolder extends RecyclerView.ViewHolder {
|
|
FrameLayout fl_ad;
|
RelativeLayout rl_title_item;
|
LinearLayout ll_container;
|
|
|
public AdHolder(View view) {
|
super(view);
|
ll_container = view.findViewById(R.id.ll_container);
|
fl_ad = view.findViewById(R.id.fl_ad);
|
rl_title_item = view.findViewById(R.id.rl_title_item);
|
}
|
|
}
|
|
|
class NewsHolder extends RecyclerView.ViewHolder {
|
|
FrameLayout fl_container;
|
|
|
public NewsHolder(View view) {
|
super(view);
|
|
fl_container = view.findViewById(R.id.fl_container);
|
}
|
}
|
|
class DrawVideosHolder extends RecyclerView.ViewHolder {
|
|
FrameLayout fl_container;
|
TextView tv_video_card_title;
|
|
public DrawVideosHolder(View view) {
|
super(view);
|
tv_video_card_title = view.findViewById(R.id.tv_video_card_title);
|
fl_container = view.findViewById(R.id.fl_container);
|
|
}
|
}
|
|
public void onDestory() {
|
if (mTextChainElement != null) {
|
mTextChainElement.destroy();
|
}
|
|
if (mVideoCardElement != null) {
|
mVideoCardElement.destroy();
|
}
|
|
}
|
|
|
public void refresh() {
|
loadVideoCard();
|
loadTextChainWidget();
|
}
|
}
|