package com.tejia.lijin.app.ui.goldtask;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.Color;
|
import android.graphics.drawable.GradientDrawable;
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.app.hubert.guide.util.ScreenUtils;
|
import com.bumptech.glide.Glide;
|
import com.wpc.library.util.common.StringUtils;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.entity.GoldTaskList;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
|
import java.util.Iterator;
|
import java.util.List;
|
|
/**
|
* 金币任务 adapter
|
*/
|
public class GoldTaskAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
private RecyclerView mRecyclerView;
|
|
private List<GoldTaskList> mList;
|
private GoldTaskActivity mContext;
|
|
private View VIEW_FOOTER;
|
private View VIEW_HEADER;
|
|
//Type
|
private int TYPE_NORMAL = 1000;
|
private int TYPE_HEADER = 1001;
|
public int TYPE_FOOTER = 1002;
|
|
private String type;
|
|
|
public GoldTaskAdapter(GoldTaskActivity context, List<GoldTaskList> list, String type, boolean isSearch) {
|
this.mList = list;
|
this.mContext = context;
|
this.type = type;
|
}
|
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
if (viewType == TYPE_FOOTER) {
|
return new ViewHolder(VIEW_FOOTER);
|
} else if (viewType == TYPE_HEADER) {
|
return new ViewHolder(VIEW_HEADER);
|
} else {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_goldtask, parent, false);
|
ViewHolder holder = new ViewHolder(view);
|
return holder;
|
}
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
if (!isHeaderView(position) && !isFooterView(position)) {
|
final GoldTaskList info;
|
if (haveHeaderView()) {
|
info = mList.get(position - 1);
|
} else if (haveFooterView() && ((haveHeaderView() && position == mList.size() + 1) || !haveHeaderView() && position == mList.size())) {
|
return;
|
} else {
|
info = mList.get(position);
|
}
|
final ViewHolder viewHolder = (ViewHolder) holder;
|
Glide.with(mContext).load(info.picture).into(viewHolder.item_goldtask_img);
|
viewHolder.item_goldtask_title.setText(info.name);
|
viewHolder.item_goldtask_titlegold.setText("+" + info.totalCoin);
|
|
viewHolder.item_goldtask_already.setText(info.progress);
|
if (info.finishedCoin != null) {
|
viewHolder.item_goldtask_already.setText(viewHolder.item_goldtask_already.getText() + " " + (info.finishedCoin == null ? "" : info.finishedCoin));
|
}
|
viewHolder.item_goldtask_content.setText(info.tip);
|
viewHolder.item_goldtask_jump.setText(info.btnName);
|
//动态改变shape
|
GradientDrawable shape = new GradientDrawable();
|
shape.setCornerRadius(ScreenUtils.dp2px(mContext, 100));
|
if (info.lightUp) {//按钮点亮
|
//设置颜色
|
shape.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#ffe5005c"));
|
viewHolder.item_goldtask_jump.setTextColor(Color.parseColor("#ffe5005c"));
|
} else {//按钮变灰色
|
//设置颜色
|
shape.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#E0E0E0"));
|
viewHolder.item_goldtask_jump.setTextColor(Color.parseColor("#ff888888"));
|
}
|
//设置大小
|
viewHolder.item_goldtask_jump.setBackground(shape);
|
viewHolder.item_goldtask_rule.setText(info.ruleName);
|
viewHolder.item_goldtask_rule.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (viewHolder.item_goldtask_rulelayout.getVisibility() == View.VISIBLE) {
|
viewHolder.item_goldtask_rulelayout.setVisibility(View.GONE);
|
viewHolder.item_goldtask_rule.setCompoundDrawablesWithIntrinsicBounds(
|
0, 0, R.drawable.ic_arrow_down, 0);
|
viewHolder.item_goldtask_rule.setBackground(mContext.getResources().getDrawable(R.drawable.shape_hot_search));
|
} else {
|
viewHolder.item_goldtask_rulelayout.setVisibility(View.VISIBLE);
|
viewHolder.item_goldtask_rule.setCompoundDrawablesWithIntrinsicBounds(
|
0, 0, R.drawable.ic_arrow_up, 0);
|
viewHolder.item_goldtask_rule.setBackground(mContext.getResources().getDrawable(R.drawable.shape_capital_top));
|
}
|
}
|
});
|
// viewHolder.item_goldtask_ruletxt.setText(Html.fromHtml(info.rule) + "");
|
// String string = info.rule;
|
String la = info.rule.replaceAll("\\\\r\\\\n", "\n");// \r\n 替换为正常的回车
|
viewHolder.item_goldtask_ruletxt.setText(la);
|
viewHolder.item_goldtask_questionmark.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
Intent intent = new Intent(mContext, ShareBrowserActivity.class);
|
intent.putExtra("url", info.ruleLink);
|
mContext.startActivity(intent);
|
}
|
});
|
//按钮点击
|
viewHolder.item_goldtask_jump.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
setClickSpe(info);
|
}
|
});
|
}
|
|
}
|
|
/**
|
* 当列表项出现到可视界面的时候调用
|
*
|
* @param holder
|
*/
|
@Override
|
public void onViewAttachedToWindow(@NonNull RecyclerView.ViewHolder holder) {
|
super.onViewAttachedToWindow(holder);
|
if (holder != null && holder.getAdapterPosition() == 0 && mList.size() > 0) {
|
// Log.e("eee", "onViewAttachedToWindow: ");
|
mContext.onWaterView_create();//开启WaterView
|
}
|
}
|
|
/**
|
* 列表项滑出可见窗口之外
|
*
|
* @param holder
|
*/
|
@Override
|
public void onViewDetachedFromWindow(@NonNull RecyclerView.ViewHolder holder) {
|
super.onViewDetachedFromWindow(holder);
|
if (holder != null && holder.getAdapterPosition() == 0 && mList.size() > 0) {
|
mContext.mNotReceived = false;
|
mContext.onWaterView_reset();//关闭子view
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = (mList == null ? 0 : mList.size());
|
if (VIEW_FOOTER != null) {
|
count++;
|
}
|
|
if (VIEW_HEADER != null) {
|
count++;
|
}
|
return count;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
if (isHeaderView(position)) {
|
return TYPE_HEADER;
|
} else if (isFooterView(position)) {
|
return TYPE_FOOTER;
|
} else {
|
return TYPE_NORMAL;
|
}
|
}
|
|
@Override
|
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
|
try {
|
if (mRecyclerView == null && mRecyclerView != recyclerView) {
|
mRecyclerView = recyclerView;
|
}
|
ifGridLayoutManager();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void addHeaderView(View headerView) {
|
if (haveHeaderView()) {
|
throw new IllegalStateException("hearview has already exists!");
|
} else {
|
//避免出现宽度自适应
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
headerView.setLayoutParams(params);
|
VIEW_HEADER = headerView;
|
ifGridLayoutManager();
|
notifyItemInserted(0);
|
}
|
}
|
|
public void addFooterView(View footerView) {
|
if (haveFooterView()) {
|
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);
|
VIEW_FOOTER = footerView;
|
ifGridLayoutManager();
|
notifyItemInserted(getItemCount() - 1);
|
}
|
}
|
|
private void ifGridLayoutManager() {
|
if (mRecyclerView == null) return;
|
final RecyclerView.LayoutManager layoutManager = mRecyclerView.getLayoutManager();
|
if (layoutManager instanceof GridLayoutManager) {
|
((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
@Override
|
public int getSpanSize(int position) {
|
if (isHeaderView(position) || isFooterView(position)) {
|
return ((GridLayoutManager) layoutManager).getSpanCount();
|
} else {
|
return 1;
|
}
|
}
|
});
|
}
|
}
|
|
private boolean haveHeaderView() {
|
return VIEW_HEADER != null;
|
}
|
|
public boolean haveFooterView() {
|
return VIEW_FOOTER != null;
|
}
|
|
private boolean isHeaderView(int position) {
|
return haveHeaderView() && position == 0;
|
}
|
|
private boolean isFooterView(int position) {
|
return haveFooterView() && position >= getItemCount() - 1;
|
}
|
|
class ViewHolder extends RecyclerView.ViewHolder {
|
private ImageView item_goldtask_img;// 頭像
|
private TextView item_goldtask_title;//每日签到
|
private TextView item_goldtask_titlegold;//显示金币
|
private TextView item_goldtask_already;//已签到
|
private TextView item_goldtask_content;//签到说明
|
private TextView item_goldtask_jump;//已签到按钮
|
private TextView item_goldtask_rule;//维护规则
|
private TextView item_goldtask_ruletxt;//规则说明
|
private ImageView item_goldtask_questionmark;//规则网址
|
private RelativeLayout item_goldtask_rulelayout;
|
|
|
public ViewHolder(View convertView) {
|
super(convertView);
|
/*
|
竖屏
|
*/
|
item_goldtask_img = convertView.findViewById(R.id.item_goldtask_img);//
|
item_goldtask_title = convertView.findViewById(R.id.item_goldtask_title);//每日签到
|
item_goldtask_titlegold = convertView.findViewById(R.id.item_goldtask_titlegold);//显示金币
|
item_goldtask_already = convertView.findViewById(R.id.item_goldtask_already);//已签到
|
item_goldtask_content = convertView.findViewById(R.id.item_goldtask_content);//签到说明
|
item_goldtask_jump = convertView.findViewById(R.id.item_goldtask_jump);//已签到按钮
|
item_goldtask_rule = convertView.findViewById(R.id.item_goldtask_rule);//维护规则
|
item_goldtask_ruletxt = convertView.findViewById(R.id.item_goldtask_ruletxt);//规则说明
|
item_goldtask_questionmark = convertView.findViewById(R.id.item_goldtask_questionmark);//规则网址
|
item_goldtask_rulelayout = convertView.findViewById(R.id.item_goldtask_rulelayout);
|
/*
|
横屏
|
*/
|
}
|
}
|
|
/**
|
* 专题列表点击
|
*/
|
public void setClickSpe(GoldTaskList info) {
|
if (info == null) {
|
return;
|
}
|
Intent intent = null;
|
if (info.jumpDetail != null && info.jumpDetail.getType().equalsIgnoreCase("baichuan") && info.params != null) {
|
//判断登陆
|
if (info.jumpDetail.isNeedLogin() && !isLogin()) {//
|
UserUtil.jumpLogin(mContext);
|
return;
|
}
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
alibcShowParams.setOpenType(OpenType.Auto);
|
String url = info.params.getString("url");
|
JumpActivityUtil.jumpBaiChuan((Activity) mContext, null, url, "", alibcShowParams);
|
} else if (info.jumpDetail != null && (!StringUtils.isEmpty(info.jumpDetail.getActivity()))
|
&& info.params != null) {//有 跳转页面 有参数
|
//判断登陆
|
if (info.jumpDetail.isNeedLogin() && !isLogin()) {//
|
UserUtil.jumpLogin(mContext);
|
return;
|
}
|
try {
|
intent = new Intent(mContext, Class.forName(JumpActivityUtil.filterActivityName(info.jumpDetail.getActivity())));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if (info.params != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = info.params.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = info.params.getString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
mContext.startActivity(intent);
|
}
|
//无 跳转页面 有参数
|
else if ((info.jumpDetail == null || (StringUtils.isEmpty(info.jumpDetail.getActivity()))) && info.params != null) {
|
intent = new Intent(mContext, ShareBrowserActivity.class);
|
if (info.params != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = info.params.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = info.params.getString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
mContext.startActivity(intent);
|
}
|
////有 跳转页面 有无参数
|
else if (info.jumpDetail != null && (!StringUtils.isEmpty(info.jumpDetail.getActivity())) && info.params == null) {
|
try {
|
intent = new Intent(mContext, Class.forName(JumpActivityUtil.filterActivityName(info.jumpDetail.getActivity())));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
mContext.startActivity(intent);
|
}
|
}
|
|
/**
|
* 判断登陆
|
*
|
* @return 登陆状态
|
*/
|
public boolean isLogin() {
|
return UserUtil.isLogin(mContext);
|
}
|
}
|