package com.insthub.ecmobile.adapter;
//
// __
// /\ \ _
// ____ ____ ___\ \ \_/ \ _____ ___ ___
// / _ \ / __ \ / __ \ \ < __ /\__ \ / __ \ / __ \
// /\ \_\ \/\ __//\ __/\ \ \\ \ /\_\ \/_/ / /\ \_\ \/\ \_\ \
// \ \____ \ \____\ \____\\ \_\\_\ \/_/ /\____\\ \____/\ \____/
// \/____\ \/____/\/____/ \/_//_/ \/____/ \/___/ \/___/
// /\____/
// \/___/
//
// Powered by BeeFramework
//
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.external.activeandroid.util.AnimationUtil;
import com.insthub.BeeFramework.view.MyDialog;
import com.insthub.BeeFramework.view.WebImageView;
import com.insthub.ecmobile.EcmobileApp;
import com.insthub.ecmobile.activity.C0_ShoppingCartActivity;
import com.insthub.ecmobile.activity.E4_HistoryActivity;
import com.insthub.ecmobile.fragment.C0_ShoppingCartFragment;
import com.insthub.ecmobile.protocol.GOODS_LIST;
import com.insthub.ecmobile.R;
import com.nostra13.universalimageloader.core.ImageLoader;
public class C0_ShoppingCartAdapter extends BaseAdapter {
private LayoutInflater inflater;
private Context context;
public List<GOODS_LIST> list;
private int i;
public Handler parentHandler;
public static int CART_CHANGE_CHANGE2 = 4;
public static int CART_CHANGE_CHANGE1 = 3;
public static int CART_CHANGE_MODIFY = 2;
public static int CART_CHANGE_REMOVE = 1;
private SharedPreferences shared;
private SharedPreferences.Editor editor;
public static Map<Integer, Boolean> isSelected = new HashMap<Integer, Boolean>();;
private MyDialog mDialog;
protected ImageLoader imageLoader = ImageLoader.getInstance();
public C0_ShoppingCartAdapter(Context context, List<GOODS_LIST> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
private boolean init(int position) {
if(isSelected.containsKey(Integer.valueOf(position))) {
if(isSelected.get(position) == true) {
return true;
} else {
return false;
}
} else {
return false;
}
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getViewTypeCount() {
int count = list != null ? list.size() : 1;
return count;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
final Resources resource = (Resources) context.getResources();
i = 0;
if(convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.c0_shopping_cart_cell, null);
holder.totel = (TextView) convertView.findViewById(R.id.shop_car_item_total);
holder.change = (Button) convertView.findViewById(R.id.shop_car_item_change);
holder.view = (FrameLayout) convertView.findViewById(R.id.shop_car_item_view);
holder.view1 = (LinearLayout) convertView.findViewById(R.id.shop_car_item_view1);
holder.view2 = (FrameLayout) convertView.findViewById(R.id.shop_car_item_view2);
holder.image = (ImageView) convertView.findViewById(R.id.shop_car_item_image);
holder.text = (TextView) convertView.findViewById(R.id.shop_car_item_text);
holder.property = (TextView) convertView.findViewById(R.id.shop_car_item_property);
holder.min = (ImageView) convertView.findViewById(R.id.shop_car_item_min);
holder.editNum = (EditText) convertView.findViewById(R.id.shop_car_item_editNum);
holder.sum = (ImageView) convertView.findViewById(R.id.shop_car_item_sum);
holder.remove = (Button) convertView.findViewById(R.id.shop_car_item_remove);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final GOODS_LIST goods = list.get(position);
isSelected.put(position, false);
shared = context.getSharedPreferences("userInfo", 0);
editor = shared.edit();
String imageType = shared.getString("imageType", "mind");
if(imageType.equals("high")) {
imageLoader.displayImage(goods.img.thumb,holder.image, EcmobileApp.options);
} else if(imageType.equals("low")) {
imageLoader.displayImage(goods.img.small,holder.image, EcmobileApp.options);
} else {
String netType = shared.getString("netType", "wifi");
if(netType.equals("wifi")) {
imageLoader.displayImage(goods.img.thumb,holder.image, EcmobileApp.options);
} else {
imageLoader.displayImage(goods.img.small,holder.image, EcmobileApp.options);
}
}
holder.totel.setText(goods.subtotal);
holder.text.setText(goods.goods_name);
StringBuffer sbf = new StringBuffer();
for(int i=0;i<goods.goods_attr.size();i++) {
sbf.append(goods.goods_attr.get(i).name+":");
sbf.append(goods.goods_attr.get(i).value+" | ");
}
sbf.append(resource.getString(R.string.amount));
sbf.append(goods.goods_number);
holder.property.setText(sbf.toString());
holder.editNum.setText(goods.goods_number+"");
holder.change.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (holder.view2.getVisibility() == View.GONE) {
AnimationUtil.showAnimation1(holder.view1, holder.view);
AnimationUtil.showAnimation2(holder.view2, holder.view);
holder.view2.setVisibility(View.VISIBLE);
holder.change.setText(resource.getString(R.string.collect_done));
Message msg = new Message();
msg.what = CART_CHANGE_CHANGE1;
parentHandler.handleMessage(msg);
isSelected.put(position, true);
} else { // 收回隐藏布局
AnimationUtil.backAnimation1(holder.view1);
AnimationUtil.backAnimation2(holder.view2);
holder.view2.setVisibility(View.GONE);
holder.change.setText(resource.getString(R.string.modify));
if(Integer.valueOf(goods.goods_number) != Integer.valueOf(holder.editNum.getText().toString())) {
Message msg = new Message();
msg.what = CART_CHANGE_MODIFY;
msg.arg1 = Integer.valueOf(goods.rec_id);
msg.arg2 = Integer.valueOf(holder.editNum.getText().toString());
parentHandler.handleMessage(msg);
}
isSelected.put(position, false);
boolean a = false;
for(int j=0;j<list.size();j++) {
if(init(j) == true) {
a = true;
break;
} else {
a = false;
}
}
if(a == false) {
Message msg1 = new Message();
msg1.what = CART_CHANGE_CHANGE2;
parentHandler.handleMessage(msg1);
}
}
}
});
holder.min.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
i = Integer.valueOf(holder.editNum.getText().toString());
if(i>1) {
holder.editNum.setText(--i+"");
}
}
});
holder.sum.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
i = Integer.valueOf(holder.editNum.getText().toString());
++i;
holder.editNum.setText(i+"");
}
});
holder.remove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mDialog = new MyDialog(context, resource.getString(R.string.shopcaritem_remove), resource.getString(R.string.delete_confirm));
mDialog.show();
mDialog.positive.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
Message msg = new Message();
msg.what = CART_CHANGE_REMOVE;
msg.arg1 = Integer.valueOf(goods.rec_id);
parentHandler.handleMessage(msg);
}
});
mDialog.negative.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
}
});
}
});
return convertView;
}
class ViewHolder {
private TextView totel;
private Button change;
private FrameLayout view;
private LinearLayout view1;
private FrameLayout view2;
private ImageView image;
private TextView text;
private TextView property;
private ImageView min;
private EditText editNum;
private ImageView sum;
private Button remove;
}
}