package com.tejia.lijin.app.ui.goods;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.graphics.Color;
|
import android.graphics.drawable.GradientDrawable;
|
import android.text.Spannable;
|
import android.text.SpannableString;
|
import android.text.SpannedString;
|
import android.text.style.RelativeSizeSpan;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.androidquery.AQuery;
|
import com.bumptech.glide.Glide;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.entity.goods.GoodsDetailInfo;
|
import com.tejia.lijin.app.entity.goods.GoodsDetailVO;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.GlideRoundTransform;
|
import com.tejia.lijin.app.util.ui.GoodsDetailUtil;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.StringUtils;
|
|
import java.util.List;
|
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
public class GoodsDetailHongBaoListAdapter extends RecyclerView.Adapter {
|
private Context mContext;
|
private List<GoodsDetailVO.GoodsHongBaoListVO> mList;
|
private boolean simpleMode;
|
private boolean hongBao;
|
private ListClickListener listClickListener;
|
|
public GoodsDetailHongBaoListAdapter(Context context, List<GoodsDetailVO.GoodsHongBaoListVO> list, ListClickListener listClickListener, boolean simpleMode, boolean hongBao) {
|
this.mContext = context;
|
this.mList = list;
|
this.simpleMode = simpleMode;
|
this.hongBao = hongBao;
|
this.listClickListener = listClickListener;
|
}
|
|
@NonNull
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_goods_detail_hongbao, parent, false));
|
}
|
|
@Override
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
final int p = position;
|
final GoodsDetailVO.GoodsHongBaoListVO hongBaoInfo = mList.get(position);
|
final ViewHolder viewHolder = (ViewHolder) holder;
|
viewHolder.fl_more.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (viewHolder.ll_hongbao_detail.getVisibility() == View.VISIBLE)
|
viewHolder.ll_hongbao_detail.setVisibility(View.GONE);
|
else {
|
viewHolder.ll_hongbao_detail.setVisibility(View.VISIBLE);
|
viewHolder.fl_more.setVisibility(View.GONE);
|
}
|
}
|
});
|
|
|
|
boolean fanli = hongBaoInfo.getType() == 4;
|
|
//初始化View显示
|
setShowMode(viewHolder, fanli, simpleMode, hongBao);
|
if (hongBao) {
|
//设置红包详情
|
setHongBaoDetailInfo(viewHolder, hongBaoInfo);
|
} else {
|
viewHolder.ll_hongbao_detail.setVisibility(View.GONE);
|
}
|
|
|
//设置会员信息
|
if (hongBaoInfo.getUserLevel() == null || simpleMode) {
|
viewHolder.ll_level_info.setVisibility(View.GONE);
|
viewHolder.tv_level_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
} else {
|
viewHolder.ll_level_info.setVisibility(View.VISIBLE);
|
viewHolder.iv_level.setImageResource(mContext.getResources().getIdentifier("icon_rank_" + hongBaoInfo.getUserLevel().getVipRank(), "drawable", mContext.getPackageName()));
|
viewHolder.tv_level_desc.setText(hongBaoInfo.getUserLevel().getDesc() == null ? "" : hongBaoInfo.getUserLevel().getDesc());
|
if (!StringUtils.isNullOrEmpty(hongBaoInfo.getUserLevel().getLink())) {
|
viewHolder.tv_level_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon_goods_detail_hongbao_user_level_more, 0);
|
} else {
|
viewHolder.tv_level_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
}
|
}
|
|
|
//设置资金
|
SpannableString hbMoney = new SpannableString(hongBaoInfo.getSubMoney());
|
hbMoney.setSpan(new RelativeSizeSpan(1.5f), 1, (hongBaoInfo.getSubMoney().indexOf(".") > -1 ? hongBaoInfo.getSubMoney().indexOf(".") : hongBaoInfo.getSubMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
viewHolder.tv_sub_money.setText(hbMoney);
|
viewHolder.tv_sub_money.setCompoundDrawablePadding(DimenUtils.dip2px(mContext, 8));
|
if (hongBao) {
|
String finalMoneyStr = null;
|
if (fanli) {
|
viewHolder.tv_actual_name.setText("到手价");
|
finalMoneyStr = "到手价 " + hongBaoInfo.getFinalMoney();
|
viewHolder.tv_sub_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_hongbao_fanli, 0, 0, 0);
|
} else {
|
viewHolder.tv_actual_name.setText("立减价");
|
finalMoneyStr = "立减价 " + hongBaoInfo.getFinalMoney();
|
viewHolder.tv_sub_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_hongbao_hb, 0, 0, 0);
|
}
|
viewHolder.tv_sub_money_desc.setTextSize(9);
|
|
SpannableString finalMoney = new SpannableString(finalMoneyStr);
|
finalMoney.setSpan(new RelativeSizeSpan(1.77f), 4 + 1, (finalMoneyStr.indexOf(".") > -1 ? finalMoneyStr.indexOf(".") : finalMoneyStr.length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
viewHolder.tv_final_money.setText(finalMoney);
|
//设置是否自动展开详情
|
if (GoodsDetailUtil.spreadHoneBaoOrFanLiDetail(mContext)) {
|
viewHolder.fl_more.performClick();
|
}
|
} else {
|
viewHolder.tv_sub_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_hongbao_coupon, 0, 0, 0);
|
viewHolder.tv_sub_money_desc.setTextSize(12);
|
viewHolder.tv_final_money.setText("");
|
}
|
viewHolder.tv_sub_money_desc.setText(hongBaoInfo.getSubMoneyDesc() == null ? "" : hongBaoInfo.getSubMoneyDesc());
|
|
//简介
|
if (StringUtils.isNullOrEmpty(hongBaoInfo.getDesc())) {
|
viewHolder.tv_desc.setText("");
|
} else {
|
viewHolder.tv_desc.setText(hongBaoInfo.getDesc());
|
}
|
|
|
viewHolder.tv_level_desc.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (StringUtils.isNullOrEmpty(hongBaoInfo.getUserLevel().getLink())) {
|
return;
|
}
|
mContext.startActivity(new Intent(mContext, ShareBrowserActivity.class).putExtra("url", hongBaoInfo.getUserLevel().getLink()));
|
}
|
});
|
|
viewHolder.fl_main.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (hongBao)
|
listClickListener.onHongBaoClick(p, hongBaoInfo);
|
else {
|
listClickListener.onCouponClick(p);
|
}
|
}
|
});
|
|
|
|
}
|
|
|
/**
|
* @param fanli 是否返利
|
* @param simple 是否为简单模式
|
*/
|
private void setShowMode(ViewHolder viewHolder, boolean fanli, boolean simple, boolean hongBao) {
|
|
GradientDrawable moreBg = new GradientDrawable();
|
moreBg.setCornerRadius(DimenUtils.dip2px(mContext, 5));
|
|
|
if (hongBao) {
|
if (fanli) {
|
viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_bg);
|
viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_fanli);
|
moreBg.setColor(Color.parseColor("#35A30E"));
|
viewHolder.iv_more.setImageResource(R.drawable.icon_goods_detail_hongbao_fanli_more);
|
} else {
|
viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_high_level_bg);
|
viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_hb);
|
moreBg.setColor(Color.parseColor("#EC1F3F"));
|
viewHolder.iv_more.setImageResource(R.drawable.icon_goods_detail_hongbao_hb_more);
|
}
|
} else {
|
viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_coupon_bg);
|
}
|
|
|
viewHolder.fl_more.setBackground(moreBg);
|
|
if (simple) {
|
viewHolder.ll_level_info.setVisibility(View.GONE);
|
viewHolder.fl_more.setVisibility(View.GONE);
|
viewHolder.tv_desc.setVisibility(View.GONE);
|
} else {
|
viewHolder.ll_level_info.setVisibility(View.VISIBLE);
|
viewHolder.fl_more.setVisibility(View.VISIBLE);
|
viewHolder.tv_desc.setVisibility(View.VISIBLE);
|
}
|
|
|
}
|
|
private void setHongBaoDetailInfo(ViewHolder viewHolder, GoodsDetailVO.GoodsHongBaoListVO hongBaoInfo) {
|
|
//隐藏超出的资金项目
|
for (int i = hongBaoInfo.getPriceDetails().size(); i < 4; i++) {
|
|
int viewId = mContext.getResources().getIdentifier(
|
"ll_money_" + i,
|
"id",
|
mContext.getPackageName());
|
if (viewHolder.fl_main.findViewById(viewId) != null)
|
viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE);
|
}
|
|
for (int i = hongBaoInfo.getPriceDetails().size() - 1; i < 3; i++) {
|
int viewId = mContext.getResources().getIdentifier(
|
"v_hongbao_cut_" + i,
|
"id",
|
mContext.getPackageName());
|
if (viewHolder.fl_main.findViewById(viewId) != null)
|
viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE);
|
}
|
|
for (int i = 0; i < hongBaoInfo.getPriceDetails().size(); i++) {
|
viewHolder.tv_money_names[i].setText(hongBaoInfo.getPriceDetails().get(i).getName());
|
viewHolder.tv_moneys[i].setText(hongBaoInfo.getPriceDetails().get(i).getMoney());
|
}
|
viewHolder.tv_actual_money.setText(hongBaoInfo.getFinalMoney());
|
|
}
|
|
@Override
|
public int getItemCount() {
|
return mList == null ? 0 : mList.size();
|
}
|
|
class ViewHolder extends RecyclerView.ViewHolder {
|
FrameLayout fl_main;
|
TextView tv_sub_money;
|
TextView tv_sub_money_desc;
|
TextView tv_final_money;
|
TextView tv_actual_name;
|
ImageView iv_more;
|
FrameLayout fl_more;
|
TextView tv_desc;
|
|
|
//价格详情
|
LinearLayout ll_hongbao_detail;
|
LinearLayout ll_money_0, ll_money_1, ll_money_2, ll_money_3;
|
TextView[] tv_money_names;
|
TextView[] tv_moneys;
|
View v_hongbao_cut_0, v_hongbao_cut_1, v_hongbao_cut_2;
|
|
//到手价
|
TextView tv_actual_money;
|
|
LinearLayout ll_level_info;
|
ImageView iv_level;
|
TextView tv_level_desc;
|
|
|
public ViewHolder(@NonNull View itemView) {
|
super(itemView);
|
|
fl_main = itemView.findViewById(R.id.fl_main);
|
tv_sub_money = itemView.findViewById(R.id.tv_sub_money);
|
tv_sub_money_desc = itemView.findViewById(R.id.tv_sub_money_desc);
|
tv_final_money = itemView.findViewById(R.id.tv_final_money);
|
iv_more = itemView.findViewById(R.id.iv_more);
|
fl_more = itemView.findViewById(R.id.fl_more);
|
|
tv_desc = itemView.findViewById(R.id.tv_desc);
|
ll_hongbao_detail = itemView.findViewById(R.id.ll_hongbao_detail);
|
ll_money_0 = itemView.findViewById(R.id.ll_money_0);
|
ll_money_1 = itemView.findViewById(R.id.ll_money_1);
|
ll_money_2 = itemView.findViewById(R.id.ll_money_2);
|
ll_money_3 = itemView.findViewById(R.id.ll_money_3);
|
|
tv_moneys = new TextView[]{itemView.findViewById(R.id.tv_money_0),
|
itemView.findViewById(R.id.tv_money_1),
|
itemView.findViewById(R.id.tv_money_2),
|
itemView.findViewById(R.id.tv_money_3)};
|
|
tv_money_names = new TextView[]{itemView.findViewById(R.id.tv_money_name_0),
|
itemView.findViewById(R.id.tv_money_name_1),
|
itemView.findViewById(R.id.tv_money_name_2),
|
itemView.findViewById(R.id.tv_money_name_3)};
|
|
v_hongbao_cut_0 = itemView.findViewById(R.id.v_hongbao_cut_0);
|
v_hongbao_cut_1 = itemView.findViewById(R.id.v_hongbao_cut_1);
|
v_hongbao_cut_2 = itemView.findViewById(R.id.v_hongbao_cut_2);
|
|
tv_actual_name= itemView.findViewById(R.id.tv_actual_name);
|
|
|
tv_actual_money = itemView.findViewById(R.id.tv_actual_money);
|
ll_level_info = itemView.findViewById(R.id.ll_level_info);
|
|
iv_level = itemView.findViewById(R.id.iv_level);
|
tv_level_desc = itemView.findViewById(R.id.tv_level_desc);
|
|
|
}
|
}
|
|
public interface ListClickListener {
|
public void onHongBaoClick(int p, GoodsDetailVO.GoodsHongBaoListVO info);
|
|
public void onCouponClick(int p);
|
}
|
|
|
}
|