package com.yeshi.ec.rebate.myapplication.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.support.v7.widget.GridLayoutManager;
|
import android.support.v7.widget.RecyclerView;
|
import android.text.Html;
|
import android.text.Spannable;
|
import android.text.SpannableString;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.yeshi.ec.rebate.myapplication.R;
|
import com.yeshi.ec.rebate.myapplication.entity.ShareRecord;
|
import com.yeshi.ec.rebate.myapplication.util.GlideRoundTransform;
|
import com.yeshi.ec.rebate.myapplication.util.TimeUtils;
|
import com.yeshi.ec.rebate.myapplication.util.VerticalImageSpan;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2017/12/5.
|
* 分享记录Adapter
|
*/
|
|
public class ShareHistoryAdapter31 extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
private RecyclerView mRecyclerView;
|
|
private List<ShareRecord> mList;
|
private Context mContext;
|
|
private View VIEW_FOOTER;
|
private View VIEW_HEADER;
|
|
//Type
|
private int TYPE_NORMAL = 1000;
|
private int TYPE_HEADER = 1001;
|
private int TYPE_FOOTER = 1002;
|
|
private DisplayImageOptions options;
|
|
public int count = 0;
|
|
public ShareHistoryAdapter31(Context context, List<ShareRecord> list) {
|
this.mList = list;
|
this.mContext = context;
|
this.options = new DisplayImageOptions.Builder()
|
.showImageForEmptyUri(R.drawable.ic_goods_default)
|
.showImageOnFail(R.drawable.ic_goods_default)
|
.showImageOnLoading(R.drawable.ic_goods_default)
|
.resetViewBeforeLoading(true).cacheInMemory(true)
|
.cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY)
|
.considerExifParams(true)
|
.displayer(new FadeInBitmapDisplayer(300)).build();
|
}
|
|
@Override
|
public ShareHistoryAdapter31.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
if (viewType == TYPE_FOOTER) {
|
return new MyHolder(VIEW_FOOTER);
|
} else if (viewType == TYPE_HEADER) {
|
return new MyHolder(VIEW_HEADER);
|
} else {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_share_history, parent, false);
|
MyHolder holder = new MyHolder(view);
|
return holder;
|
}
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
MyHolder viewHolder = (MyHolder) holder;
|
if (!isHeaderView(position) && !isFooterView(position)) {
|
final ShareRecord 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);
|
}
|
|
if (position == 0 || (position > 0 && !isSameDay(new Date(Long.parseLong(info.getShareTime())), new Date(Long.parseLong(mList.get(position - 1).getShareTime()))))) {
|
viewHolder.tv_share_time.setVisibility(View.VISIBLE);
|
viewHolder.tv_share_time.setText(TimeUtils.millisToLifeString1(Long.parseLong(info.getShareTime())));
|
} else {
|
viewHolder.tv_share_time.setVisibility(View.GONE);
|
}
|
if (info.getShareType().equalsIgnoreCase("single")) {
|
viewHolder.tv_share_type.setText("单个商品分享");
|
viewHolder.tv_share_type.setTextColor(mContext.getResources().getColor(R.color.blue1));
|
viewHolder.tv_share_type.setBackgroundResource(R.drawable.shape_share_history_single);
|
} else {
|
viewHolder.tv_share_type.setText("多个商品分享");
|
viewHolder.tv_share_type.setTextColor(mContext.getResources().getColor(R.color.orange1));
|
viewHolder.tv_share_type.setBackgroundResource(R.drawable.shape_share_history_multiple);
|
}
|
viewHolder.tv_share_from.setText("来源:" + (info.getSource().equalsIgnoreCase("all")
|
? "所有" : info.getSource().equalsIgnoreCase("storage")
|
? "分享库" : info.getSource().equalsIgnoreCase("activity") ? "动态" : "商品详情"));
|
viewHolder.tv_today_scan.setText(info.getTodayBrowse());
|
viewHolder.tv_total_scan.setText(info.getTotalBrowse());
|
viewHolder.tv_estimate_order_num.setText(info.getTotalOrder() + "笔");
|
viewHolder.tv_estimate_reward.setText("预估奖金:¥" + info.getTotalMoney());
|
viewHolder.tv_goods_num.setText(info.getTotalGoods() + "个商品");
|
Glide.with(mContext).load(info.getPicture()).transform(new
|
GlideRoundTransform(mContext, 5)).into(viewHolder.iv_share_cover);
|
viewHolder.ll_item.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
Intent intent = new Intent(mContext, ShareGoodsActivity31.class);
|
intent.putExtra("recordId", info.getId());
|
mContext.startActivity(intent);
|
}
|
});
|
}
|
}
|
|
/**
|
* @param date 当前时间
|
* @param sameDate 上次打开时间
|
* @return
|
*/
|
private boolean isSameDay(Date date, Date sameDate) {
|
if (null == date || null == sameDate) {
|
return false;
|
}
|
Calendar nowCalendar = Calendar.getInstance();
|
nowCalendar.setTime(sameDate);
|
|
Calendar dateCalendar = Calendar.getInstance();
|
dateCalendar.setTime(date);
|
|
return nowCalendar.get(Calendar.YEAR) == dateCalendar.get(Calendar.YEAR)
|
&& nowCalendar.get(Calendar.MONTH) == dateCalendar.get(Calendar.MONTH)
|
&& nowCalendar.get(Calendar.DATE) == dateCalendar.get(Calendar.DATE);
|
|
}
|
|
@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;
|
}
|
|
|
public class MyHolder extends RecyclerView.ViewHolder {
|
LinearLayout ll_item;
|
TextView tv_share_time;
|
TextView tv_share_type;
|
TextView tv_share_from;
|
TextView tv_today_scan;
|
TextView tv_total_scan;
|
TextView tv_estimate_order_num;
|
TextView tv_estimate_reward;
|
TextView tv_goods_num;
|
ImageView iv_share_cover;
|
|
public MyHolder(View convertView) {
|
super(convertView);
|
ll_item = convertView.findViewById(R.id.ll_item);
|
iv_share_cover = convertView
|
.findViewById(R.id.iv_share_cover);
|
tv_share_time = convertView.findViewById(R.id.tv_share_time);
|
tv_share_type = convertView
|
.findViewById(R.id.tv_share_type);
|
tv_share_from = convertView.findViewById(R.id.tv_share_from);
|
tv_today_scan = convertView.findViewById(R.id.tv_today_scan);
|
tv_total_scan = convertView.findViewById(R.id.tv_total_scan);
|
tv_estimate_order_num = convertView.findViewById(R.id.tv_estimate_order_num);
|
tv_estimate_reward = convertView.findViewById(R.id.tv_estimate_reward);
|
tv_goods_num = convertView.findViewById(R.id.tv_goods_num);
|
}
|
}
|
}
|