package com.yeshi.ec.library_baiducpu.adapter;
|
|
import android.content.Context;
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.RelativeLayout;
|
|
import com.androidquery.AQuery;
|
import com.baidu.mobads.nativecpu.IBasicCPUData;
|
import com.yeshi.ec.library_baiducpu.R;
|
import com.yeshi.ec.library_baiducpu.entity.NativeCPUView;
|
import com.yeshi.ec.library_baiducpu.entity.NativeSmallVideoCPUView;
|
import com.yeshi.ec.library_baiducpu.entity.NativeVideoCPUView;
|
import com.yeshi.ec.library_baiducpu.fragment.BaiDuCPUContentFragment;
|
|
import java.util.List;
|
|
public class BaiduCPUContentAdapter extends RecyclerView.Adapter {
|
|
private LayoutInflater inflater;
|
private AQuery aq;
|
private View footerView;
|
|
private Context mContext;
|
|
private List<IBasicCPUData> nrAdList;
|
|
private final int TYPE_FOOTER = 1;
|
private final int TYPE_CONTENT = 2;
|
private int viewType;
|
|
private IBaiDuCPUItemClickListener baiDuCPUItemClickListener;
|
|
public BaiduCPUContentAdapter(Context context, int viewType, List<IBasicCPUData> nrAdList, IBaiDuCPUItemClickListener baiDuCPUItemClickListener) {
|
inflater = LayoutInflater.from(context);
|
aq = new AQuery(context);
|
this.nrAdList = nrAdList;
|
this.mContext = context;
|
this.viewType = viewType;
|
this.baiDuCPUItemClickListener = baiDuCPUItemClickListener;
|
}
|
|
public void setFooterView(View footerView) {
|
this.footerView = footerView;
|
}
|
|
|
@NonNull
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
if (viewType == TYPE_CONTENT)
|
return new ViewHolder(inflater.inflate(R.layout.item_baidu_news, null, false));
|
else
|
return new FooterViewHolder(footerView);
|
}
|
|
@Override
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
if (holder instanceof ViewHolder) {
|
ViewHolder viewHolder = (ViewHolder) holder;
|
final IBasicCPUData nrAd = nrAdList.get(position);
|
if (viewType == BaiDuCPUContentFragment.VIEW_TYPE_NEWS) {
|
NativeCPUView cpuView = new NativeCPUView(mContext);
|
if (cpuView.getParent() != null) {
|
((ViewGroup) cpuView.getParent()).removeView(cpuView);
|
}
|
cpuView.setItemData(nrAd, aq);
|
viewHolder.rl_container.removeAllViews();
|
viewHolder.rl_container.addView(cpuView);
|
nrAd.onImpression(viewHolder.view);
|
} else if (viewType == BaiDuCPUContentFragment.VIEW_TYPE_SMALLVIDEO) {
|
NativeSmallVideoCPUView cpuView = new NativeSmallVideoCPUView(mContext);
|
if (cpuView.getParent() != null) {
|
((ViewGroup) cpuView.getParent()).removeView(cpuView);
|
}
|
cpuView.setItemData(nrAd, aq);
|
viewHolder.rl_container.removeAllViews();
|
viewHolder.rl_container.addView(cpuView);
|
nrAd.onImpression(viewHolder.view);
|
} else if (viewType == BaiDuCPUContentFragment.VIEW_TYPE_VIDEO) {
|
NativeVideoCPUView cpuView = new NativeVideoCPUView(mContext);
|
if (cpuView.getParent() != null) {
|
((ViewGroup) cpuView.getParent()).removeView(cpuView);
|
}
|
cpuView.setItemData(nrAd, aq);
|
viewHolder.rl_container.removeAllViews();
|
viewHolder.rl_container.addView(cpuView);
|
nrAd.onImpression(viewHolder.view);
|
}
|
|
viewHolder.view.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
if (baiDuCPUItemClickListener != null) {
|
baiDuCPUItemClickListener.onClick(nrAd);
|
}
|
nrAd.handleClick(view);
|
}
|
});
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = nrAdList.size();
|
if (footerView != null)
|
count++;
|
return count;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
if (position >= nrAdList.size())
|
return TYPE_FOOTER;
|
else
|
return TYPE_CONTENT;
|
}
|
|
class ViewHolder extends RecyclerView.ViewHolder {
|
RelativeLayout rl_container;
|
View view;
|
|
public ViewHolder(View itemView) {
|
super(itemView);
|
view = itemView;
|
rl_container = itemView.findViewById(R.id.native_outer_view);
|
}
|
}
|
|
class FooterViewHolder extends RecyclerView.ViewHolder {
|
public FooterViewHolder(View itemView) {
|
super(itemView);
|
}
|
}
|
|
|
public interface IBaiDuCPUItemClickListener {
|
public void onClick(IBasicCPUData nrAd);
|
}
|
|
}
|