package com.weikou.beibeivideo.ui.discover;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
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.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.util.glide.GlideCircleTransform;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.GoodsInfo;
|
import com.weikou.beibeivideo.ui.common.FollowActivity;
|
import com.weikou.beibeivideo.ui.login.LoginActivity;
|
import com.weikou.beibeivideo.util.UserUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2017/1/4.
|
*/
|
|
public class GoodsAdapter extends BaseAdapter {
|
|
private Context mContext;
|
|
private List<GoodsInfo> mList;
|
private DisplayImageOptions options;
|
|
public GoodsAdapter(Context context, List<GoodsInfo> list) {
|
mContext = context;
|
mList = list;
|
this.options = new DisplayImageOptions.Builder()
|
.showImageForEmptyUri(R.drawable.ic_goods_space)
|
.showImageOnFail(R.drawable.ic_goods_space)
|
.showImageOnLoading(R.drawable.ic_goods_space)
|
.resetViewBeforeLoading(true).cacheInMemory(true)
|
.cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY)
|
.considerExifParams(true)
|
.displayer(new FadeInBitmapDisplayer(300)).build();
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return mList.get(position);
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
@Override
|
public int getCount() {
|
return mList == null ? 0 : mList.size();
|
}
|
|
@Override
|
public View getView(int position, View view, ViewGroup parent) {
|
final Holder holder;
|
if (view == null) {
|
view = LayoutInflater.from(mContext).inflate(R.layout.item_discover_res, null);
|
holder = new Holder();
|
holder.iv_goods_img = (ImageView) view.findViewById(R.id.iv_goods_img);
|
holder.iv_portrait = (ImageView) view.findViewById(R.id.iv_referee_portrait);
|
holder.tv_goods_des = (TextView) view.findViewById(R.id.tv_goods_des);
|
holder.tv_goods_price = (TextView) view.findViewById(R.id.tv_goods_price);
|
holder.tv_nickName = (TextView) view.findViewById(R.id.tv_referee_nickname);
|
holder.tv_recommend_des = (TextView) view.findViewById(R.id.tv_recommend_language);
|
holder.tv_favourite = (TextView) view.findViewById(R.id.tv_favourite_goods);
|
holder.tv_favourite_num = (TextView) view.findViewById(R.id.tv_favourite_num);
|
holder.tv_review_num = (TextView) view.findViewById(R.id.tv_review_num);
|
holder.ll_favourite = (LinearLayout) view.findViewById(R.id.ll_favourite);
|
view.setTag(holder);
|
} else {
|
holder = (Holder) view.getTag();
|
}
|
final GoodsInfo info = mList.get(position);
|
ImageLoader.getInstance().displayImage(info.getItem().getPict_url(), holder.iv_goods_img, options);
|
// ImageLoader.getInstance().displayImage("drawable://" + R.drawable.ic_launcher, holder.iv_portrait);
|
|
if (info.getLoginUser().getPortrait().contains("http")) {
|
Glide.with(mContext).load(info.getLoginUser().getPortrait()).placeholder(R.drawable.img_head_portrait).error(R.drawable.ic_portrait_default).transform(new GlideCircleTransform(mContext)).into(holder.iv_portrait);
|
} else {
|
Glide.with(mContext).load("http://video.yeshitv.com:8089/BuWan/" + info.getLoginUser().getPortrait()).placeholder(R.drawable.img_head_portrait).error(R.drawable.ic_portrait_default).transform(new GlideCircleTransform(mContext)).into(holder.iv_portrait);
|
}
|
holder.tv_goods_price.setText("¥" + info.getItem().getZk_final_price());
|
holder.tv_goods_des.setText(info.getItem().getTitle());
|
holder.tv_nickName.setText(info.getLoginUser().getNickname() + "");
|
holder.tv_recommend_des.setText(info.getTitle() + "");
|
holder.tv_favourite_num.setText(info.getCollectcount() + "");
|
holder.tv_review_num.setText(info.getCommentcount() + "");
|
if (Boolean.parseBoolean(info.getCollect())) {
|
holder.tv_favourite.setCompoundDrawablesWithIntrinsicBounds(
|
R.drawable.ic_favourite_shop_hight, 0, 0, 0);
|
} else {
|
holder.tv_favourite.setCompoundDrawablesWithIntrinsicBounds(
|
R.drawable.ic_favourite_shop, 0, 0, 0);
|
}
|
holder.ll_favourite.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
SharedPreferences sp = mContext.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String loginUid = sp.getString("LoginUid", "");
|
if (StringUtils.isEmpty(loginUid)) {
|
SingleToast.showToast(mContext, "登录后才能收藏");
|
UserUtil.toLogin(mContext);
|
|
return;
|
}
|
if (Boolean.parseBoolean(info.getCollect())) {
|
cancelCollect(info, holder.tv_favourite, holder.tv_favourite_num);
|
} else {
|
addCollect(info, holder.tv_favourite, holder.tv_favourite_num);
|
}
|
}
|
});
|
view.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (info != null) {
|
Intent intent = new Intent(v.getContext(), GoodsDetailActivity.class);
|
intent.putExtra("goodsId", info.getId());
|
v.getContext().startActivity(intent);
|
}
|
}
|
});
|
return view;
|
}
|
|
/**
|
* 添加收藏
|
*/
|
private void addCollect(final GoodsInfo info, final TextView tv_favourite, final TextView tv_favourite_num) {
|
SharedPreferences sp = mContext.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String uid = sp.getString("uid", "");
|
String loginUid = sp.getString("LoginUid", "");
|
BeibeiVideoAPI.addGoodsFavourite(mContext, uid, loginUid, info.getId(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
if (!Boolean.parseBoolean(info.getCollect())) {
|
info.setCollectcount((Integer.parseInt((info.getCollectcount())) + 1) + "");
|
tv_favourite_num.setText(info.getCollectcount());
|
}
|
tv_favourite.setCompoundDrawablesWithIntrinsicBounds(
|
R.drawable.ic_favourite_shop_hight, 0, 0, 0);
|
SingleToast.showToast(mContext, "收藏成功!");
|
info.setCollect("true");
|
}
|
}
|
});
|
}
|
|
/**
|
* 取消收藏
|
*/
|
private void cancelCollect(final GoodsInfo info, final TextView tv_favourite, final TextView tv_favourite_num) {
|
SharedPreferences sp = mContext.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String uid = sp.getString("uid", "");
|
String loginUid = sp.getString("LoginUid", "");
|
BeibeiVideoAPI.cancelGoodsFavourite(mContext, uid, loginUid, info.getId(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
if (Boolean.parseBoolean(info.getCollect())) {
|
info.setCollectcount((Integer.parseInt((info.getCollectcount())) - 1) + "");
|
tv_favourite_num.setText(info.getCollectcount());
|
}
|
tv_favourite.setCompoundDrawablesWithIntrinsicBounds(
|
R.drawable.ic_favourite_shop, 0, 0, 0);
|
SingleToast.showToast(mContext, "取消收藏成功!");
|
info.setCollect("false");
|
}
|
}
|
});
|
}
|
|
class Holder {
|
ImageView iv_goods_img;
|
ImageView iv_portrait;
|
TextView tv_goods_des;
|
TextView tv_goods_price;
|
TextView tv_nickName;
|
TextView tv_recommend_des;
|
TextView tv_favourite;
|
TextView tv_favourite_num;
|
TextView tv_review_num;
|
LinearLayout ll_favourite;
|
}
|
|
}
|