package com.tejia.lijin.app.ui.trends;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import androidx.annotation.NonNull;
|
import androidx.viewpager.widget.ViewPager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.BaseAdapter;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.viewpagerindicator.CirclePageIndicator;
|
import com.wpc.library.widget.MyGridView;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.SpecialOffer2;
|
import com.tejia.lijin.app.entity.trends.CollegeArticle;
|
import com.tejia.lijin.app.entity.trends.CollegeContent;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.ui.recommend.RecommendTopAdapter2;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
import com.tejia.lijin.app.util.SetLabels;
|
import com.tejia.lijin.app.util.downutil.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* 学院adapter
|
*/
|
public class CollegeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
|
private List<CollegeContent> mList;
|
private Activity mContext;
|
private LayoutInflater inflater = null;
|
private SpecialAdapter specialAdapter;
|
|
private final int TYPE_FOOTER = -1;
|
|
private final int TYPE_BANNER = 1;
|
private final int TYPE_SEARCH = 2;
|
private final int TYPE_SPECIAL = 3;
|
private final int TYPE_ARTICLE = 4;
|
|
|
public CollegeAdapter(Activity activity, List<CollegeContent> contentList) {
|
this.mContext = activity;
|
this.mList = contentList;
|
inflater = LayoutInflater.from(mContext);
|
}
|
|
@NonNull
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
switch (viewType) {
|
case TYPE_BANNER:
|
View bannerView = inflater.inflate(R.layout.item_college_banner, parent, false);
|
return new BannerHolder(bannerView);
|
case TYPE_SEARCH:
|
View searchView = inflater.inflate(R.layout.item_college_search, parent, false);
|
return new SearchHolder(searchView);
|
case TYPE_SPECIAL:
|
View specialView = inflater.inflate(R.layout.item_college_special, null);
|
SpecialHolder specialHolder = new SpecialHolder(specialView);
|
return specialHolder;
|
case TYPE_ARTICLE:
|
View articleView = inflater.inflate(R.layout.item_college_article, parent, false);
|
return new ArticleHolder(articleView);
|
case TYPE_FOOTER:
|
return new CommonHolder(footerView);
|
}
|
return null;
|
}
|
|
|
@Override
|
public int getItemViewType(int position) {
|
if (position < mList.size())
|
return mList.get(position).getType();
|
else if (position == mList.size())
|
return TYPE_FOOTER;
|
return 0;
|
}
|
|
@Override
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
if (position >= mList.size())
|
return;
|
final CollegeContent info = mList.get(position);
|
if (holder instanceof BannerHolder) {
|
BannerHolder bannerHolder = (BannerHolder) holder;
|
bannerHolder.vp_college.setAdapter(new RecommendTopAdapter2(info.getBannerList(), mContext, false));
|
bannerHolder.indicator.setViewPager(bannerHolder.vp_college);
|
} else if (holder instanceof SpecialHolder) {
|
final SpecialHolder specialHolder = (SpecialHolder) holder;
|
if (specialAdapter == null) {
|
specialAdapter = new SpecialAdapter(mContext, info.getSpecialList());
|
specialHolder.gridView.setAdapter(specialAdapter);
|
} else
|
specialAdapter.notifyDataSetChanged();
|
|
if (specialAdapter.getCount() < 1)
|
specialHolder.gridView.setVisibility(View.GONE);
|
else
|
specialHolder.gridView.setVisibility(View.VISIBLE);
|
} else if (holder instanceof SearchHolder) {
|
SearchHolder searchHolder = (SearchHolder) holder;
|
searchHolder.itemView.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
v.getContext().startActivity(new Intent(v.getContext(), CollegeSearchActivity.class));
|
}
|
});
|
|
} else if (holder instanceof ArticleHolder) {
|
final CollegeArticle article = info.getCollegeArticle();
|
ArticleHolder articleHolder = (ArticleHolder) holder;
|
articleHolder.tv_title.setText(article.getTitle());
|
articleHolder.tv_content.setText(article.getContent());
|
articleHolder.tv_scan.setText(article.getReadNum());
|
articleHolder.ll_labels.removeAllViews();
|
if (article.getLabels() != null && article.getLabels().size() > 0)
|
SetLabels.addLabel(mContext, articleHolder.ll_labels, article.getLabels());
|
if (!StringUtils.isNullOrEmpty(article.getPicture())) {
|
articleHolder.iv_picture.setVisibility(View.VISIBLE);
|
Glide.with(mContext).load(article.getPicture()).into(articleHolder.iv_picture);
|
} else {
|
articleHolder.iv_picture.setVisibility(View.GONE);
|
}
|
articleHolder.itemView.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
mContext.startActivity(new Intent(mContext, ShareBrowserActivity.class).putExtra("url", article.getArticlelink()));
|
ShoppingApi.readCollegeArticle(mContext, article.getId(), null);
|
}
|
});
|
|
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = mList.size();
|
if (footerView != null)
|
count++;
|
return count;
|
}
|
|
|
/**
|
* Banner
|
*/
|
public class BannerHolder extends RecyclerView.ViewHolder {
|
private ViewPager vp_college;
|
private CirclePageIndicator indicator;
|
|
public BannerHolder(View view) {
|
super(view);
|
vp_college = view.findViewById(R.id.vp_college);
|
indicator = view.findViewById(R.id.indicator_college);
|
}
|
}
|
|
|
/**
|
* 搜索框
|
*/
|
public class SearchHolder extends RecyclerView.ViewHolder {
|
private View ll_search;
|
|
public SearchHolder(View view) {
|
super(view);
|
ll_search = view.findViewById(R.id.ll_search);
|
}
|
}
|
|
/**
|
* 专题
|
*/
|
public class SpecialHolder extends RecyclerView.ViewHolder {
|
private MyGridView gridView;
|
|
public SpecialHolder(View view) {
|
super(view);
|
gridView = view.findViewById(R.id.gv_special);
|
}
|
}
|
|
/**
|
* 文章
|
*/
|
public class ArticleHolder extends RecyclerView.ViewHolder {
|
private TextView tv_title;
|
private TextView tv_content;
|
private TextView tv_scan;
|
private ImageView iv_picture;
|
private LinearLayout ll_labels;
|
|
|
public ArticleHolder(View view) {
|
super(view);
|
tv_title = view.findViewById(R.id.tv_title);
|
tv_content = view.findViewById(R.id.tv_content);
|
tv_scan = view.findViewById(R.id.tv_scan);
|
ll_labels = view.findViewById(R.id.ll_labels);
|
iv_picture = view.findViewById(R.id.iv_picture);
|
}
|
|
}
|
|
/**
|
* 文章
|
*/
|
public class CommonHolder extends RecyclerView.ViewHolder {
|
|
public CommonHolder(View view) {
|
super(view);
|
}
|
|
}
|
|
private static class SpecialAdapter extends BaseAdapter {
|
private Activity mContext;
|
private List<SpecialOffer2> specialList;
|
|
public SpecialAdapter(Activity actiivty, List<SpecialOffer2> specialList) {
|
this.mContext = actiivty;
|
this.specialList = specialList;
|
}
|
|
@Override
|
public int getCount() {
|
return specialList.size();
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return specialList.get(position);
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
@Override
|
public View getView(int position, View convertView, ViewGroup parent) {
|
final SpecialOffer2 info = specialList.get(position);
|
View v = LayoutInflater.from(mContext).inflate(R.layout.item_college_special_content, null);
|
ImageView riv_bg = v.findViewById(R.id.riv_bg);
|
ImageView iv_icon = v.findViewById(R.id.iv_icon);
|
TextView tv_title = v.findViewById(R.id.tv_title);
|
Glide.with(mContext).load(info.getPicture()).into(riv_bg);
|
Glide.with(mContext).load(info.getIcon()).into(iv_icon);
|
tv_title.setText(info.getName());
|
v.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
JumpActivityUtil.jumpPage(mContext, info.getJumpDetail(), info.getParams());
|
}
|
});
|
return v;
|
}
|
}
|
|
private View footerView = null;
|
|
public void addFooterView(View footerView) {
|
if (this.footerView != null) {
|
throw new IllegalStateException("footerView has already exists!");
|
} else {
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
footerView.setLayoutParams(params);
|
this.footerView = footerView;
|
notifyItemInserted(getItemCount() - 1);
|
}
|
}
|
|
}
|