package com.insthub.ecmobile.activity; // // __ // /\ \ _ // ____ ____ ___\ \ \_/ \ _____ ___ ___ // / _ \ / __ \ / __ \ \ < __ /\__ \ / __ \ / __ \ // /\ \_\ \/\ __//\ __/\ \ \\ \ /\_\ \/_/ / /\ \_\ \/\ \_\ \ // \ \____ \ \____\ \____\\ \_\\_\ \/_/ /\____\\ \____/\ \____/ // \/____\ \/____/\/____/ \/_//_/ \/____/ \/___/ \/___/ // /\____/ // \/___/ // // Powered by BeeFramework // import java.util.ArrayList; import android.app.Dialog; import android.content.res.Resources; import android.util.Log; import android.view.LayoutInflater; import android.widget.*; import com.insthub.BeeFramework.activity.BaseActivity; import com.insthub.ecmobile.ECMobileAppConst; import com.insthub.ecmobile.EcmobileManager; import com.insthub.ecmobile.ShareConst; import com.insthub.ecmobile.protocol.ApiInterface; import com.insthub.ecmobile.protocol.GOODORDER; import com.insthub.ecmobile.protocol.ORDER_INFO; import com.insthub.ecmobile.protocol.SESSION; import com.umeng.analytics.MobclickAgent; import com.unionpay.UPPayAssistEx; import com.unionpay.uppay.PayActivity; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import com.external.androidquery.callback.AjaxStatus; import com.external.maxwin.view.XListView; import com.external.maxwin.view.XListView.IXListViewListener; import com.insthub.ecmobile.R; import com.insthub.BeeFramework.model.BusinessResponse; import com.insthub.BeeFramework.view.MyDialog; import com.insthub.BeeFramework.view.ToastView; import com.insthub.ecmobile.adapter.C0_ShoppingCartAdapter; import com.insthub.ecmobile.adapter.E4_HistoryAdapter; import com.insthub.ecmobile.model.OrderModel; import com.insthub.ecmobile.model.ProtocolConst; public class E4_HistoryActivity extends BaseActivity implements BusinessResponse, IXListViewListener { private String flag; private TextView title; private ImageView back; private XListView xlistView; private E4_HistoryAdapter tradeAdapter; private View null_paView; private OrderModel orderModel; public Handler messageHandler; private MyDialog mDialog; private String UPPay_mMode = "00"; private ORDER_INFO order_info; private final static int REQUEST_ALIPAY = 7; private final static int REQUEST_Pay_Web = 8; private final static int REQUEST_UPPay = 10; @Override protected void onCreate(Bundle savedInstanceState) { Resources resource = (Resources) getBaseContext().getResources(); super.onCreate(savedInstanceState); setContentView(R.layout.e4_history); Intent intent = getIntent(); flag = intent.getStringExtra("flag"); title = (TextView) findViewById(R.id.top_view_text); back = (ImageView) findViewById(R.id.top_view_back); back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); null_paView = findViewById(R.id.null_pager); xlistView = (XListView) findViewById(R.id.trade_list); xlistView.setPullLoadEnable(true); xlistView.setRefreshTime(); xlistView.setXListViewListener(this,1); orderModel = new OrderModel(this); orderModel.addResponseListener(this); String awa=resource.getString(R.string.await_pay); String ship=resource.getString(R.string.await_ship); String shipped=resource.getString(R.string.shipped); String fin=resource.getString(R.string.profile_history); if(flag.equals("await_pay")) { title.setText(awa); /** * 在这里请求数据 */ orderModel.getOrder("await_pay"); } else if(flag.equals("await_ship")) { title.setText(ship); /** * 在这里请求数据 */ orderModel.getOrder("await_ship"); } else if(flag.equals("shipped")) { title.setText(shipped); /** * 在这里请求数据 */ orderModel.getOrder("shipped"); } else if(flag.equals("finished")) { title.setText(fin); /** * 在这里请求数据 */ orderModel.getOrder("finished"); } messageHandler = new Handler(){ public void handleMessage(final Message msg) { if (msg.what == 1) { GOODORDER order = (GOODORDER)msg.obj; order_info = order.order_info; if (EcmobileManager.getAlipayCallback(getApplicationContext()) != null && EcmobileManager.getAlipayParterId(getApplicationContext()) != null && EcmobileManager.getAlipaySellerId(getApplicationContext()) != null && EcmobileManager.getRsaAlipayPublic(getApplicationContext()) != null && EcmobileManager.getRsaPrivate(getApplicationContext()) != null) { if (0 == order_info.pay_code.compareTo("alipay")) { showAlipayDialog(); }else if(0==order_info.pay_code.compareTo("upop")){ orderModel.orderPay(order_info.order_id); }else if(0==order_info.pay_code.compareTo("tenpay")){ orderModel.orderPay(order_info.order_id); } else { orderModel.orderPay(order_info.order_id); } } else { orderModel.orderPay(order_info.order_id); } } else if (msg.what == 2) { Resources resource = (Resources) getBaseContext().getResources(); String exit=resource.getString(R.string.balance_cancel_or_not); String exiten=resource.getString(R.string.prompt); final MyDialog cancelOrders = new MyDialog(E4_HistoryActivity.this, exiten, exit); cancelOrders.show(); cancelOrders.positive.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { cancelOrders.dismiss(); GOODORDER order = (GOODORDER)msg.obj; order_info = order.order_info; orderModel.orderCancle(order_info.order_id); } }); cancelOrders.negative.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { cancelOrders.dismiss(); } }); } else if(msg.what == 3) { GOODORDER order = (GOODORDER)msg.obj; order_info = order.order_info; orderModel.affirmReceived(order_info.order_id); } } }; } public void setOrder() { Resources resource = (Resources) getBaseContext().getResources(); String nodata=resource.getString(R.string.no_data); if(orderModel.order_list.size() == 0) { null_paView.setVisibility(View.VISIBLE); xlistView.setVisibility(View.GONE); } else { null_paView.setVisibility(View.GONE); xlistView.setVisibility(View.VISIBLE); } if(flag.equals("await_pay")) { if(tradeAdapter == null) { tradeAdapter = new E4_HistoryAdapter(this, orderModel.order_list, 1); xlistView.setAdapter(tradeAdapter); } else { tradeAdapter.list = orderModel.order_list; tradeAdapter.notifyDataSetChanged(); } tradeAdapter.parentHandler = messageHandler; } else if(flag.equals("await_ship")) { if(tradeAdapter == null) { tradeAdapter = new E4_HistoryAdapter(this, orderModel.order_list, 2); xlistView.setAdapter(tradeAdapter); } else { tradeAdapter.list = orderModel.order_list; tradeAdapter.notifyDataSetChanged(); } tradeAdapter.parentHandler = messageHandler; } else if(flag.equals("shipped")) { if(tradeAdapter == null) { tradeAdapter = new E4_HistoryAdapter(this, orderModel.order_list, 3); xlistView.setAdapter(tradeAdapter); } else { tradeAdapter.list = orderModel.order_list; tradeAdapter.notifyDataSetChanged(); } tradeAdapter.parentHandler = messageHandler; } else if(flag.equals("finished")) { if(tradeAdapter == null) { tradeAdapter = new E4_HistoryAdapter(this, orderModel.order_list, 4); xlistView.setAdapter(tradeAdapter); } else { tradeAdapter.list = orderModel.order_list; tradeAdapter.notifyDataSetChanged(); } tradeAdapter.parentHandler = messageHandler; } } @Override public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException { Resources resource = (Resources) getBaseContext().getResources(); xlistView.stopRefresh(); xlistView.stopLoadMore(); if(url.endsWith(ApiInterface.ORDER_LIST)) { xlistView.setRefreshTime(); if(orderModel.paginated.more == 0) { xlistView.setPullLoadEnable(false); } else { xlistView.setPullLoadEnable(true); } setOrder(); } else if(url.endsWith(ApiInterface.ORDER_PAY)) { String pay_wap= orderModel.pay_wap; String pay_online=orderModel.pay_online; String upop_tn=orderModel.upop_tn; if (upop_tn != null && !"".equals(upop_tn)) { //银联sdk支付 UPPayAssistEx.startPayByJAR(E4_HistoryActivity.this, PayActivity.class, null, null, upop_tn, UPPay_mMode); } else if (pay_wap != null && !"".equals(pay_wap)) { //wap支付 Intent intent = new Intent(this, PayWebActivity.class); intent.putExtra(PayWebActivity.PAY_URL, pay_wap); startActivityForResult(intent,REQUEST_Pay_Web); } else if (pay_online != null && !"".equals(pay_online)) { //其他方式 Intent intent = new Intent(this, OtherPayWebActivity.class); intent.putExtra("html", pay_online); startActivity(intent); } } else if(url.endsWith(ApiInterface.ORDER_CANCLE)) { orderModel.getOrder(flag); } else if(url.endsWith(ApiInterface.ORDER_AFFIRMRECEIVED)) { String suc=resource.getString(R.string.successful_operation); String check=resource.getString(R.string.check_or_not); mDialog = new MyDialog(this, suc, check); mDialog.show(); mDialog.positive.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); Intent intent = new Intent(E4_HistoryActivity.this, E4_HistoryActivity.class); intent.putExtra("flag", "finished"); startActivity(intent); finish(); } }); mDialog.negative.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } }); orderModel.getOrder(flag); } } @Override public void onRefresh(int id) { orderModel.getOrder(flag); } @Override public void onLoadMore(int id) { orderModel.getOrderMore(flag); } @Override public void onResume() { super.onResume(); if(EcmobileManager.getUmengKey(this)!=null){ MobclickAgent.onPageStart(getIntent().getStringExtra("flag")); MobclickAgent.onResume(this, EcmobileManager.getUmengKey(this),""); } } @Override public void onPause() { super.onPause(); if (EcmobileManager.getUmengKey(this) != null) { MobclickAgent.onPageEnd(getIntent().getStringExtra("flag")); MobclickAgent.onPause(this); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_UPPay) { if (data == null) { return; } /* * 支付控件返回字符串:success、fail、cancel * 分别代表支付成功,支付失败,支付取消 */ String str = data.getExtras().getString("pay_result"); if (str.equalsIgnoreCase("success")) { Resources resource = getResources(); String exit = resource.getString(R.string.pay_success); String exiten = resource.getString(R.string.continue_shopping_or_not); final MyDialog mDialog = new MyDialog(E4_HistoryActivity.this, exit, exiten); mDialog.show(); mDialog.positive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); Intent it = new Intent(E4_HistoryActivity.this, EcmobileMainActivity.class); startActivity(it); finish(); } }); mDialog.negative.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); orderModel.getOrder(flag); } }); } else if (str.equalsIgnoreCase("fail") || str.equals("cancel")) { ToastView toast = new ToastView(E4_HistoryActivity.this, getResources().getString(R.string.pay_failed)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } } else if (requestCode==REQUEST_ALIPAY){ if (data == null) { return; } String str = data.getExtras().getString("pay_result"); if (str.equalsIgnoreCase("success")) { orderModel.getOrder(flag); Resources resource = getResources(); String exit = resource.getString(R.string.pay_success); String exiten = resource.getString(R.string.continue_shopping_or_not); final MyDialog mDialog = new MyDialog(E4_HistoryActivity.this, exit, exiten); mDialog.show(); mDialog.positive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); Intent it = new Intent(E4_HistoryActivity.this, EcmobileMainActivity.class); startActivity(it); finish(); } }); mDialog.negative.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } }); } else if (str.equalsIgnoreCase("fail")) { ToastView toast = new ToastView(E4_HistoryActivity.this, getResources().getString(R.string.pay_failed)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } }else if (requestCode==REQUEST_Pay_Web){ if (data == null) { return; } String str = data.getExtras().getString("pay_result"); if (str.equalsIgnoreCase("success")) { orderModel.getOrder(flag); Resources resource = getResources(); String exit = resource.getString(R.string.pay_success); String exiten = resource.getString(R.string.continue_shopping_or_not); final MyDialog mDialog = new MyDialog(E4_HistoryActivity.this, exit, exiten); mDialog.show(); mDialog.positive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); Intent it = new Intent(E4_HistoryActivity.this, EcmobileMainActivity.class); startActivity(it); finish(); } }); mDialog.negative.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } }); } else if (str.equalsIgnoreCase("fail")) { ToastView toast = new ToastView(E4_HistoryActivity.this, getResources().getString(R.string.pay_failed)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } } } private void showAlipayDialog(){ LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.layout.alipay_dialog,null); final Dialog dialog = new Dialog(this, R.style.dialog); dialog.setContentView(view); dialog.setCanceledOnTouchOutside(false); dialog.show(); LinearLayout alipayLayout = (LinearLayout) view.findViewById(R.id.alipay); LinearLayout alipayWapLayout = (LinearLayout) view.findViewById(R.id.alipay_wap); alipayLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); Intent intent =new Intent(E4_HistoryActivity.this,AlixPayActivity.class); intent.putExtra(AlixPayActivity.ORDER_INFO,order_info); startActivityForResult(intent,REQUEST_ALIPAY); } }); alipayWapLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); orderModel.orderPay(order_info.order_id); } }); } }