package com.txsc.activity;
import java.util.HashMap;
import java.util.List;
import lib.view.ViewUtils;
import lib.view.annotation.ViewInject;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import com.txsc.MyApplication;
import com.txsc.NetActivity;
import com.txsc.R;
import com.txsc.bean.GoodsInfoBean;
import com.txsc.bean.GoodsInfoBean.picBean;
import com.txsc.bean.ObjNetResultBean;
import com.txsc.constants.Url;
import com.txsc.utils.AtyUtils;
import com.txsc.utils.ImageUtil;
import com.txsc.utils.JsonUtils;
import com.txsc.utils.LogUtils;
import com.txsc.utils.MD5;
import com.txsc.utils.SPUtils;
import com.txsc.utils.TextUtils;
import com.txsc.utils.ToastUtil;
import com.txsc.view.CollectPopWindow;
import com.txsc.view.CollectPopWindow.OnItem2ClickListener;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
/**
* 商品详情
*
* @author Admin
*
*/
public class Goods_DetailAty extends NetActivity implements
OnItem2ClickListener {
private GoodsInfoBean goods_info;
@ViewInject(R.id.p2_vpager_goods_detail_pic)
private ViewPager vpager;
@ViewInject(R.id.p2_img_goods_detail_back)
private ImageView imgBack;
@ViewInject(R.id.p2_text_goods_detail_name)
private TextView textGName;
@ViewInject(R.id.p2_text_goods_detail_price)
private TextView textGPrice;
@ViewInject(R.id.p2_text_goods_detail_number)
private TextView textGNum;
@ViewInject(R.id.p2_text_goods_detail_integral)
private TextView textGInteg;
@ViewInject(R.id.p2_tv_to_car)
private TextView tv_ToCar;
@ViewInject(R.id.put_in)
private ImageView textAddCar;
@ViewInject(R.id.pop_dark_layout)
private View darkView;
@ViewInject(R.id.p2_btn_goods_detail_collect)
private ImageView btnCollect;
@ViewInject(R.id.p2_line_goods_desc)
private LinearLayout lineDesc;
private CollectPopWindow popWindow;
private String good_id;
private List<GoodsInfoBean.attrBean> attr_List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyApplication.getInstance().addActivity(this);
setContentView(R.layout.p2_main_goods_detail_layout);
ViewUtils.inject(this);
textAddCar.setOnClickListener(this);
btnCollect.setOnClickListener(this);
imgBack.setOnClickListener(this);
lineDesc.setOnClickListener(this);
tv_ToCar.setOnClickListener(this);
good_id = getIntent().getStringExtra("goods_id");
HashMap<String, String> params = new HashMap<String, String>();
params.put("goods_id", good_id);
params.put("port_password", MD5.getMD5ofStr(Url.KET + good_id));
asynNet(Url.Goods_Detail, params, 2);
}
private class ImageAdapter extends PagerAdapter {
private LayoutInflater inflater;
private List<picBean> mList;
ImageAdapter(List<picBean> list) {
inflater = LayoutInflater.from(Goods_DetailAty.this);
this.mList = list;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return goods_info.getGoods_thumb().size();
}
@Override
public Object instantiateItem(ViewGroup view, int position) {
View imageLayout = inflater.inflate(R.layout.item_pager_image,
view, false);
assert imageLayout != null;
ImageView imageView = (ImageView) imageLayout
.findViewById(R.id.image);
final ProgressBar spinner = (ProgressBar) imageLayout
.findViewById(R.id.loading);
if (mList.size() != 0) {
ImageLoader.getInstance().displayImage(
mList.get(position).getPic(), imageView,
ImageUtil.getOption(),
new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri,
View view) {
spinner.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri,
View view, FailReason failReason) {
spinner.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
spinner.setVisibility(View.GONE);
}
});
} else {
ImageUtil.loadImage(imageView, "drawable://"
+ R.drawable.no_picture);
}
view.addView(imageLayout, 0);
return imageLayout;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
@Override
public Parcelable saveState() {
return null;
}
}
@Override
public void failure(int tag) {
super.failure(tag);
ToastUtil.show(this, "商品可能下架了,刷新后试试", 500);
Goods_DetailAty.this.finish();
}
@Override
public void success(String result, int tag) {
LogUtils.log(result);
ObjNetResultBean bean = JsonUtils.parseNetResult(result);
if (tag == 0) {
if (bean.getStatus().getCode() == 200) {
ToastUtil.show(this, "已成功添加购物车!", 500);
new AlertDialog.Builder(this).setTitle("提醒")
.setMessage("已成功加入购物车,还要吗?")
.setNegativeButton("继续购买", null)
.setPositiveButton("去结算", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
AtyUtils.turnToCar(Goods_DetailAty.this);
}
}).create().show();
} else {
ToastUtil.show(this, "添加失败!" + bean.getStatus().getMessage(),
500);
}
} else if (tag == 1) {
if (bean.getStatus().getCode() == 200) {
ToastUtil.show(this, "收藏成功!", 500);
} else {
ToastUtil.show(this, "收藏失败!" + bean.getStatus().getMessage(),
500);
}
} else if (tag == 2) {
if (bean.getStatus().getCode() == 200) {
goods_info = JsonUtils.parseGoodsDetail(bean.getBackinfo()
.toString());
List<picBean> picList = goods_info.getGoods_thumb();
attr_List = goods_info.getGoods_attr();
vpager.setAdapter(new ImageAdapter(picList));
textGName.setText(goods_info.getGoods_name());
textGPrice.setText(goods_info.getGoods_price() + "元/"
+ goods_info.getGoods_unit());
textGNum.setText(goods_info.getGoods_sn());
textGInteg.setText(goods_info.getGoods_integral() + "个");
}
}
}
@Override
public void onclick(View v) {
if (v == textAddCar) {
darkView.setVisibility(View.VISIBLE);
popWindow = new CollectPopWindow(this, attr_List, darkView);
popWindow.setOnItem2ClickListener(this);
popWindow.showAsDropDown(v);
// popWindow.setOnDismissListener(new OnDissMiss() {
// @Override
// public void onMiss() {
// darkView.setVisibility(View.GONE);
// }
// });
} else if (v == btnCollect) {
if (TextUtils.isBlank(SPUtils.getUid(this))) {
ToastUtil.show(this, "抱歉,您还未登录,请登录", 500);
Intent intent = new Intent(this, User_LoginAty.class);
startActivity(intent);
return;
}
HashMap<String, String> params = new HashMap<String, String>();
params.put("sp_userid", SPUtils.getUid(this));
params.put("sp_goodsid", goods_info.getGoods_id());
params.put("goods_attr_id", goods_info.getGoods_attr().get(0)
.getTGoodsPropertyID());
params.put("port_password",
MD5.getMD5ofStr(Url.KET + SPUtils.getUid(this)));
asynNet(Url.Goods_Collect, params, 1);
} else if (v == imgBack) {
Goods_DetailAty.this.finish();
} else if (v == lineDesc) {
Intent intent = new Intent(this, Goods_DescAty.class);
intent.putExtra("desc", goods_info.getGoods_info());
startActivity(intent);
} else if (v == tv_ToCar) {
AtyUtils.turnToCar(Goods_DetailAty.this);
}
}
@Override
public void onClickOKPop(int defaultNum, String attrId) {
darkView.setVisibility(View.GONE);
if (TextUtils.isBlank(SPUtils.getUid(this))) {
ToastUtil.show(this, "抱歉,您还未登录,请登录", 500);
Intent intent = new Intent(this, User_LoginAty.class);
startActivity(intent);
return;
}
HashMap<String, String> params = new HashMap<String, String>();
params.put("sp_userid", SPUtils.getUid(this));
params.put("sp_goodsid", goods_info.getGoods_id());
params.put("sp_count", defaultNum + "");
params.put("goods_attr_id", attrId);
params.put("port_password",
MD5.getMD5ofStr(Url.KET + SPUtils.getUid(this)));
asynNet(Url.Car_Add, params, 0);
}
@Override
public void onCanclePop() {
darkView.setVisibility(View.GONE);
}
}