// // _/_/_/ _/ _/_/_/_/_/ // _/ _/_/ _/_/ _/ _/ _/ _/_/ _/_/ // _/ _/_/ _/_/_/_/ _/_/_/_/ _/_/ _/ _/ _/ _/ _/ // _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ // _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/_/_/ _/_/ _/_/ // // // Copyright (c) 2015-2016, Geek Zoo Studio // http://www.geek-zoo.com // // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. // package com.insthub.O2OMobile.Activity; import android.app.Dialog; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.AnimationDrawable; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Editable; import android.text.Selection; import android.text.Spannable; import android.text.TextWatcher; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.BeeFramework.Utils.AnimationUtil; import com.BeeFramework.Utils.TimeUtil; import com.BeeFramework.Utils.Utils; import com.BeeFramework.activity.BaseActivity; import com.BeeFramework.model.BusinessResponse; import com.BeeFramework.view.MyDialog; import com.BeeFramework.view.RoundedWebImageView; import com.BeeFramework.view.ToastView; import com.external.androidquery.callback.AjaxStatus; import com.external.eventbus.EventBus; import com.external.maxwin.view.IXListViewListener; import com.external.maxwin.view.XListView; import com.insthub.O2OMobile.O2OMobile; import com.insthub.O2OMobile.O2OMobileAppConst; import com.insthub.O2OMobile.MessageConstant; import com.insthub.O2OMobile.Model.OrderInfoModel; import com.insthub.O2OMobile.Protocol.ApiInterface; import com.insthub.O2OMobile.Protocol.ENUM_ORDER_STATUS; import com.insthub.O2OMobile.Protocol.ENUM_PAY_CODE; import com.insthub.O2OMobile.Protocol.ORDER_INFO; import com.insthub.O2OMobile.Protocol.SIMPLE_USER; import com.insthub.O2OMobile.Protocol.orderacceptResponse; import com.insthub.O2OMobile.R; import com.insthub.O2OMobile.SESSION; import com.insthub.O2OMobile.Utils.StringUtils; import com.nostra13.universalimageloader.core.ImageLoader; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; public class D1_OrderActivity extends BaseActivity implements BusinessResponse, IXListViewListener { private AnimationDrawable mAnimationDrawable = null; private Dialog mPriceDialog; private Dialog mOrderDialog; private ImageView mBack; private TextView mTitle; private TextView mRightText; private XListView mXListView; private View mHeaderView; private Button mOrderBtnCancel; private Button mOrderBtnOk; private ImageView mOrderEmptyView; private RoundedWebImageView mOrderEmployerAvatar; private TextView mOrderEmployerName; private ImageView mOrderEmployerPhone; private TextView mOrderTime; private TextView mOrderSn; private TextView mOrderServiceType; private TextView mOrderAppointmentTime; private TextView mOrderLocation; private TextView mOrderPrice; private LinearLayout mOrderTransactionPriceView; private TextView mOrderTransactionPrice; private TextView mOrderContentText; private LinearLayout mOrderContentVoiceView; private ImageView mOrderContentVoiceIcon; private TextView mOrderContentVoiceTime; private LinearLayout mOrderStatusView; private TextView mOrderStatus; private ImageView mOrderStatusArrow; private View mOrderVisibleButtonView; private LinearLayout mOrderWaitView; private TextView mOrderEmployeeCount; private LinearLayout mOrderEmployeeView; private RoundedWebImageView mOrderEmployeeAvatar; private TextView mOrderEmployeeName; private ImageView mOrderEmployeePhone; private LinearLayout mOrderCommentView; private View mOrderPlay; private LinearLayout mOrderPlayOrderView; private TextView mOrderPlayOrderSn; private TextView mOrderPlayOrderServiceType; private TextView mOrderPlayOrderLocation; private TextView mOrderPlayOrderPrice; private LinearLayout mOrderPlayButtonView; private Button mOrderPlayOnline; private Button mOrderPlayOffline; private Button mOrderPlayCancel; private TextView mOrderPriceDialogPrice; private EditText mOrderPriceDialogChangePrice; private Button mOrderPriceDialogOk; private Button mOrderPriceDialogCancel; protected ImageLoader mImageLoader = ImageLoader.getInstance(); private OrderInfoModel mOrderInfoModel; private int mOrderId; public static String ORDER_ID = "orderId"; private MediaPlayer mPlayer; private int mWidthPixels; //屏幕宽度 private ENUM_PAY_CODE payCode; public int COMMENT_SEND = 1; private int PLAY_VOICE = 1; private TextView mAcceptOrderTime; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.d1_order_listview); mBack = (ImageView) findViewById(R.id.top_view_back); mTitle = (TextView) findViewById(R.id.top_view_title); mRightText = (TextView) findViewById(R.id.top_view_right_text); mBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); mTitle.setText(getString(R.string.order_detail)); mRightText.setVisibility(View.VISIBLE); DisplayMetrics dm = getResources().getDisplayMetrics(); mWidthPixels = dm.widthPixels; Intent intent = getIntent(); mOrderId = intent.getIntExtra(ORDER_ID, 0); mHeaderView = LayoutInflater.from(this).inflate(R.layout.d1_order, null); mXListView = (XListView) findViewById(R.id.order_listview); mXListView.addHeaderView(mHeaderView); mXListView.setPullLoadEnable(false); mXListView.loadMoreHide(); mXListView.setRefreshTime(); mXListView.setXListViewListener(this, 1); mXListView.setAdapter(null); mOrderBtnCancel = (Button) findViewById(R.id.order_button_cancel); mOrderBtnOk = (Button) findViewById(R.id.order_button_ok); mOrderEmptyView = (ImageView) findViewById(R.id.order_empty_view); mOrderPlay = findViewById(R.id.order_play); mOrderPlayOrderView = (LinearLayout) findViewById(R.id.order_play_order_view); mOrderPlayOrderSn = (TextView) findViewById(R.id.order_play_order_sn); mOrderPlayOrderServiceType = (TextView) findViewById(R.id.order_play_order_service_type); mOrderPlayOrderLocation = (TextView) findViewById(R.id.order_play_order_location); mOrderPlayOrderPrice = (TextView) findViewById(R.id.order_play_order_price); mOrderPlayButtonView = (LinearLayout) findViewById(R.id.order_play_button_view); mOrderPlayOnline = (Button) findViewById(R.id.order_play_online); mOrderPlayOffline = (Button) findViewById(R.id.order_play_offline); mOrderPlayCancel = (Button) findViewById(R.id.order_play_cancel); mOrderEmployerAvatar = (RoundedWebImageView) mHeaderView.findViewById(R.id.order_employer_avatar); mOrderEmployerName = (TextView) mHeaderView.findViewById(R.id.order_employer_name); mOrderEmployerPhone = (ImageView) mHeaderView.findViewById(R.id.order_employer_phone); mOrderTime = (TextView) mHeaderView.findViewById(R.id.order_time); mOrderSn = (TextView) mHeaderView.findViewById(R.id.order_sn); mOrderServiceType = (TextView) mHeaderView.findViewById(R.id.order_service_type); mOrderAppointmentTime = (TextView) mHeaderView.findViewById(R.id.order_appointment_time); mOrderLocation = (TextView) mHeaderView.findViewById(R.id.order_location); mOrderPrice = (TextView) mHeaderView.findViewById(R.id.order_price); mOrderTransactionPriceView = (LinearLayout) mHeaderView.findViewById(R.id.order_transaction_price_view); mOrderTransactionPrice = (TextView) mHeaderView.findViewById(R.id.order_transaction_price); mOrderContentText = (TextView) mHeaderView.findViewById(R.id.order_content_text); mOrderContentVoiceView = (LinearLayout) mHeaderView.findViewById(R.id.order_content_voice_view); mOrderContentVoiceIcon = (ImageView) mHeaderView.findViewById(R.id.order_content_voice_icon); mOrderContentVoiceTime = (TextView) mHeaderView.findViewById(R.id.order_content_voice_time); mOrderStatusView = (LinearLayout) mHeaderView.findViewById(R.id.order_status_view); mOrderStatus = (TextView) mHeaderView.findViewById(R.id.order_status); mOrderStatusArrow = (ImageView) mHeaderView.findViewById(R.id.order_status_arrow); mOrderVisibleButtonView = mHeaderView.findViewById(R.id.order_visible_button_view); mOrderWaitView = (LinearLayout) mHeaderView.findViewById(R.id.order_wait_view); mOrderEmployeeCount = (TextView) mHeaderView.findViewById(R.id.order_employee_count); mOrderEmployeeView = (LinearLayout) mHeaderView.findViewById(R.id.order_employee_view); mOrderEmployeeAvatar = (RoundedWebImageView) mHeaderView.findViewById(R.id.order_employee_avatar); mOrderEmployeeName = (TextView) mHeaderView.findViewById(R.id.order_employee_name); mOrderEmployeePhone = (ImageView) mHeaderView.findViewById(R.id.order_employee_phone); mOrderCommentView = (LinearLayout) mHeaderView.findViewById(R.id.order_comment_view); mAcceptOrderTime = (TextView) mHeaderView.findViewById(R.id.accept_order_time); mRightText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, G0_ReportActivity.class); intent.putExtra("orderId", mOrderId); startActivity(intent); } }); mOrderEmptyView.setOnClickListener(null); mOrderPlayOrderView.setOnClickListener(null); mOrderPlay.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub AnimationUtil.backAnimationFromBottom(mOrderPlayOrderView); mOrderPlayOrderView.setVisibility(View.GONE); AnimationUtil.backAnimation(mOrderPlayButtonView); mOrderPlayButtonView.setVisibility(View.GONE); Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); mOrderPlay.setVisibility(View.GONE); mOrderBtnCancel.setVisibility(View.VISIBLE); } }; mHandler.sendEmptyMessageDelayed(0, 200); } }); mOrderPlayOnline.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { payCode = ENUM_PAY_CODE.PAY_ONLINE; mOrderInfoModel.pay(mOrderId, ENUM_PAY_CODE.PAY_ONLINE.value()); } }); mOrderPlayOffline.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { payCode = ENUM_PAY_CODE.PAY_OFFLINE; mOrderInfoModel.pay(mOrderId, ENUM_PAY_CODE.PAY_OFFLINE.value()); } }); mOrderPlayCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub AnimationUtil.backAnimationFromBottom(mOrderPlayOrderView); mOrderPlayOrderView.setVisibility(View.GONE); AnimationUtil.backAnimation(mOrderPlayButtonView); mOrderPlayButtonView.setVisibility(View.GONE); Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); mOrderPlay.setVisibility(View.GONE); mOrderBtnCancel.setVisibility(View.VISIBLE); } }; mHandler.sendEmptyMessageDelayed(0, 200); } }); mOrderStatusView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, D2_OrderHistoryActivity.class); intent.putExtra("order_id", mOrderId); startActivity(intent); } }); mOrderInfoModel = new OrderInfoModel(this); mOrderInfoModel.addResponseListener(this); mOrderInfoModel.get(mOrderId); } private void showOrderPriceDialog() { LayoutInflater inflater = LayoutInflater.from(D1_OrderActivity.this); View view = inflater.inflate(R.layout.d1_order_price_dialog, null); mPriceDialog = new Dialog(D1_OrderActivity.this, R.style.dialog); mPriceDialog.setContentView(view); mPriceDialog.setCanceledOnTouchOutside(false); mPriceDialog.show(); mOrderPriceDialogPrice = (TextView) view.findViewById(R.id.order_price_dialog_price); mOrderPriceDialogChangePrice = (EditText) view.findViewById(R.id.order_price_dialog_change_price); mOrderPriceDialogOk = (Button) view.findViewById(R.id.order_price_dialog_ok); mOrderPriceDialogCancel = (Button) view.findViewById(R.id.order_price_dialog_cancel); if(mOrderInfoModel.publicOrder.offer_price != null) { mOrderPriceDialogPrice.setText(Utils.formatBalance(mOrderInfoModel.publicOrder.offer_price) + "元"); } mOrderPriceDialogChangePrice.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub if (s.toString().length() > 0) { if (s.toString().substring(0, 1).equals(".")) { s = s.toString().substring(1, s.length()); mOrderPriceDialogChangePrice.setText(s); } } if (s.toString().length() > 1) { if (s.toString().substring(0, 1).equals("0")) { if (!s.toString().substring(1, 2).equals(".")) { s = s.toString().substring(1, s.length()); mOrderPriceDialogChangePrice.setText(s); CharSequence charSequencePirce = mOrderPriceDialogChangePrice.getText(); if (charSequencePirce instanceof Spannable) { Spannable spanText = (Spannable) charSequencePirce; Selection.setSelection(spanText, charSequencePirce.length()); } } } } boolean flag = false; for (int i = 0; i < s.toString().length() - 1; i++) { String getstr = s.toString().substring(i, i + 1); if (getstr.equals(".")) { flag = true; break; } } if (flag) { int i = s.toString().indexOf("."); if (s.toString().length() - 3 > i) { String getstr = s.toString().substring(0, i + 3); mOrderPriceDialogChangePrice.setText(getstr); CharSequence charSequencePirce = mOrderPriceDialogChangePrice.getText(); if (charSequencePirce instanceof Spannable) { Spannable spanText = (Spannable) charSequencePirce; Selection.setSelection(spanText, charSequencePirce.length()); } } } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } }); mOrderPriceDialogCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mPriceDialog.dismiss(); } }); mOrderPriceDialogOk.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mOrderInfoModel.done(mOrderId, mOrderPriceDialogChangePrice.getText().toString()); mPriceDialog.dismiss(); } }); } private void showOrderDialog(boolean isSucceed, orderacceptResponse response) { LayoutInflater inflater = LayoutInflater.from(D1_OrderActivity.this); View view = inflater.inflate(R.layout.d1_order_dialog, null); mOrderDialog = new Dialog(D1_OrderActivity.this, R.style.dialog); mOrderDialog.setContentView(view); mOrderDialog.setCanceledOnTouchOutside(false); mOrderDialog.show(); Button order_dialog_button = (Button) view.findViewById(R.id.order_dialog_button); ImageView order_dialog_icon = (ImageView) view.findViewById(R.id.order_dialog_icon); TextView order_dialog_text = (TextView) view.findViewById(R.id.order_dialog_text); TextView order_dialog_error_text = (TextView) view.findViewById(R.id.order_dialog_error_text); if(isSucceed) { order_dialog_icon.setImageResource(R.drawable.b2_selected_icon); order_dialog_text.setText(getString(R.string.receive_order_success)); order_dialog_text.setTextColor(Color.parseColor("#39BCED")); } else { order_dialog_icon.setImageResource(R.drawable.d3_failed); order_dialog_text.setText(getString(R.string.receive_order_fail)); order_dialog_text.setTextColor(Color.parseColor("#f65858")); order_dialog_error_text.setText(response.error_desc); } order_dialog_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mOrderDialog.dismiss(); } }); } @Override public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException { // TODO Auto-generated method stub mXListView.stopRefresh(); if(url.endsWith(ApiInterface.ORDER_INFO)) { Message msg = new Message(); msg.what = MessageConstant.RECEIVE_ORDER_PUSH; EventBus.getDefault().post(msg); if(jo != null) { mOrderEmptyView.setVisibility(View.GONE); mOrderEmptyView.setImageDrawable(null); mOrderEmptyView.setOnClickListener(null); setOrderDetailView(mOrderInfoModel.publicOrder); } else { mOrderEmptyView.setVisibility(View.VISIBLE); mOrderEmptyView.setImageResource(R.drawable.e7_no_connections); mOrderEmptyView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mOrderInfoModel.get(mOrderId); } }); } } else if(url.endsWith(ApiInterface.ORDER_CANCEL)) { ToastView toast = new ToastView(D1_OrderActivity.this, getString(R.string.order_have_canceled)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); setOrderDetailView(mOrderInfoModel.publicOrder); } else if(url.endsWith(ApiInterface.ORDER_ACCEPT)) { orderacceptResponse response = new orderacceptResponse(); response.fromJson(jo); if(response.succeed == 1) { showOrderDialog(true, response); } else { showOrderDialog(false, response); } setOrderDetailView(mOrderInfoModel.publicOrder); } else if(url.endsWith(ApiInterface.ORDER_WORK_DONE)) { setOrderDetailView(mOrderInfoModel.publicOrder); } else if(url.endsWith(ApiInterface.ORDER_PAY)) { if (payCode == ENUM_PAY_CODE.PAY_OFFLINE) { AnimationUtil.backAnimationFromBottom(mOrderPlayOrderView); mOrderPlayOrderView.setVisibility(View.GONE); AnimationUtil.backAnimation(mOrderPlayButtonView); mOrderPlayButtonView.setVisibility(View.GONE); Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); mOrderPlay.setVisibility(View.GONE); mOrderBtnCancel.setVisibility(View.VISIBLE); } }; mHandler.sendEmptyMessageDelayed(0, 200); } else { //Todo 在线支付 ToastView toast = new ToastView(getApplicationContext(), getString(R.string.share_content)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } setOrderDetailView(mOrderInfoModel.publicOrder); } else if(url.endsWith(ApiInterface.ORDER_CONFIRM_PAY)) { setOrderDetailView(mOrderInfoModel.publicOrder); } } private void setOrderDetailView(final ORDER_INFO order) { setOrderDate(order); mOrderEmployeeView.setVisibility(View.VISIBLE); if(order.order_status == ENUM_ORDER_STATUS.OS_PUBLISHED.value()) { mOrderEmployeeView.setVisibility(View.GONE); // 客户发单 if(order.employer.id != 0) { if(isEmp(order.employer)) { mOrderWaitView.setVisibility(View.VISIBLE); mOrderEmployeeCount.setText(order.push_number + ""); mOrderBtnCancel.setText(getString(R.string.cancel_order)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub final MyDialog myDialog = new MyDialog(D1_OrderActivity.this, getString(R.string.cacel_order_or_not)); myDialog.show(); myDialog.positive.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub myDialog.dismiss(); mOrderInfoModel.cancel(mOrderId); } }); myDialog.negative.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub myDialog.dismiss(); } }); } }); } else { mOrderBtnCancel.setText(getString(R.string.receive_immediately)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mOrderInfoModel.accept(mOrderId); } }); } } } else if(order.order_status == ENUM_ORDER_STATUS.OS_KNOCK_DOWN.value()) { // 已确认接单 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.wait_for_complete)); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnOk.setVisibility(View.VISIBLE); mOrderVisibleButtonView.setVisibility(View.VISIBLE); mOrderBtnOk.setText(getString(R.string.confirm_complete)); mOrderBtnOk.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showOrderPriceDialog(); } }); mOrderBtnCancel.setText(getString(R.string.cancel_order)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub final MyDialog myDialog = new MyDialog(D1_OrderActivity.this, getString(R.string.cacel_order_or_not)); myDialog.show(); myDialog.positive.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub myDialog.dismiss(); mOrderInfoModel.cancel(mOrderId); } }); myDialog.negative.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub myDialog.dismiss(); } }); } }); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_WORK_DONE.value()) { // 工作完成 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + "元"); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + "元"); } if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setText(getString(R.string.immediately_pay)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mOrderPlay.setVisibility(View.VISIBLE); mOrderPlayOrderView.setVisibility(View.VISIBLE); AnimationUtil.showAnimationFromTop(mOrderPlayOrderView); mOrderPlayButtonView.setVisibility(View.VISIBLE); AnimationUtil.showAnimation(mOrderPlayButtonView); mOrderBtnCancel.setVisibility(View.GONE); if (order.order_sn != null) { mOrderPlayOrderSn.setText(order.order_sn); } if (order.service_type != null && order.service_type.title != null) { mOrderPlayOrderServiceType.setText(order.service_type.title); } if (order.location != null && order.location.name != null) { mOrderPlayOrderLocation.setText(order.location.name); } mOrderPlayOrderPrice.setText(Utils.formatBalance(order.transaction_price) + "元"); } }); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnOk.setVisibility(View.GONE); mOrderVisibleButtonView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.wait_for_pay)); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_PAYED.value()) { // 已付款 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + getString(R.string.yuan)); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.wait_for_confirm_pay)); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnCancel.setText(getString(R.string.confirm_pay)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mOrderInfoModel.confirmPay(mOrderId); } }); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_PAY_CONFORMED.value()) { // 付款已确认 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + getString(R.string.yuan)); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setText(getString(R.string.evaluate_now)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //Toast.makeText(D1_OrderDetailActivity.this, OrderStatusPayConformed, 0).show(); Intent it = new Intent(D1_OrderActivity.this, D3_OrderCommentActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivityForResult(it, COMMENT_SEND); } }); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnCancel.setText(getString(R.string.evaluate_now)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent it = new Intent(D1_OrderActivity.this, D3_OrderCommentActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivityForResult(it, COMMENT_SEND); } }); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_EMPLOYEE_COMMENTED.value()) { // 雇员已评价 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + getString(R.string.yuan)); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } mOrderCommentView.setVisibility(View.VISIBLE); mOrderCommentView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent it = new Intent(D1_OrderActivity.this, D4_OrderCommentListActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivity(it); } }); if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setText(getString(R.string.evaluate_now)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent it = new Intent(D1_OrderActivity.this, D3_OrderCommentActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivityForResult(it, COMMENT_SEND); } }); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.wait_for_evaluate)); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_EMPLOYER_COMMENTED.value()) { // 雇主已评价 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + getString(R.string.yuan)); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } mOrderCommentView.setVisibility(View.VISIBLE); mOrderCommentView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent it = new Intent(D1_OrderActivity.this, D4_OrderCommentListActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivity(it); } }); if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.wait_for_evaluate)); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnCancel.setText(getString(R.string.evaluate_now)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent it = new Intent(D1_OrderActivity.this, D3_OrderCommentActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivityForResult(it, COMMENT_SEND); } }); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_FINISHED.value()) { // 订单结束 mOrderWaitView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(true); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_apply_btn_select); mOrderTransactionPriceView.setVisibility(View.VISIBLE); if(order.transaction_price != null && !order.transaction_price.equals("")) { mOrderTransactionPrice.setText(Utils.formatBalance(order.transaction_price) + getString(R.string.yuan)); } else { mOrderTransactionPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } mOrderCommentView.setVisibility(View.VISIBLE); mOrderCommentView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent it = new Intent(D1_OrderActivity.this, D4_OrderCommentListActivity.class); it.putExtra(O2OMobileAppConst.ORDERINFO, order); startActivity(it); } }); if(isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setText(getString(R.string.share_evalute)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, D3_OrderCommentCompleteActivity.class); intent.putExtra("order_id", mOrderId); startActivity(intent); } }); } else if(isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnCancel.setText(getString(R.string.share_evalute)); mOrderBtnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, D3_OrderCommentCompleteActivity.class); intent.putExtra("order_id", mOrderId); startActivity(intent); } }); } else { // 游客 setVisitor(); } } else if(order.order_status == ENUM_ORDER_STATUS.OS_CANCELED.value()) { // 订单取消 mOrderWaitView.setVisibility(View.GONE); if (isEmp(order.employer)) { // 雇主 if(order.employee.id != 0) { setEmployee(order.employee, false,order); } mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.order_have_canceled)); } else if (isEmp(order.employee)) { // 雇员 setEmployee(order.employee, true,order); mOrderBtnOk.setVisibility(View.GONE); mOrderVisibleButtonView.setVisibility(View.GONE); mOrderBtnCancel.setEnabled(false); mOrderBtnCancel.setBackgroundResource(R.drawable.c1_applied_btn); mOrderBtnCancel.setText(getString(R.string.order_have_canceled)); } else { // 游客 setVisitor(); } } } /** * 订单详情 * @param order */ private void setOrderDate(final ORDER_INFO order) { if(order.employer != null && order.employer.avatar != null && order.employer.avatar.thumb != null) { mImageLoader.displayImage(order.employer.avatar.thumb, mOrderEmployerAvatar, O2OMobile.options_head); } mOrderEmployerAvatar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, F0_ProfileActivity.class); intent.putExtra(F0_ProfileActivity.USER_ID, order.employer.id); startActivity(intent); } }); if(order.employer != null && order.employer.nickname != null) { mOrderEmployerName.setText(order.employer.nickname); } if(order.created_at != null) { mOrderTime.setText(TimeUtil.timeAgo(order.created_at)); } if(order.order_sn != null) { mOrderSn.setText(order.order_sn); } if(order.service_type != null && order.service_type.title != null) { mOrderServiceType.setText(order.service_type.title); } if(order.appointment_time != null) { mOrderAppointmentTime.setText(order.appointment_time); } if(order.location != null && order.location.name != null) { mOrderLocation.setText(order.location.name); } if(order.offer_price != null) { mOrderPrice.setText(Utils.formatBalance(order.offer_price) + getString(R.string.yuan)); } if(order.content != null && order.content.text != null && !order.content.text.equals("")) { mOrderContentText.setText(order.content.text); } if(order.content != null && order.content.voice != null) { if(!order.content.voice.equals("")) { mOrderContentVoiceView.setVisibility(View.VISIBLE); mOrderContentVoiceTime.setText(order.duration + "'"); LayoutParams layoutParams_icon = (LayoutParams) mOrderContentVoiceView.getLayoutParams(); layoutParams_icon.width = mWidthPixels / 6 + order.duration * 3; layoutParams_icon.height = mWidthPixels / 12; mOrderContentVoiceView.setLayoutParams(layoutParams_icon); } mOrderContentVoiceView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (mPlayer == null) { mOrderContentVoiceIcon.setImageResource(R.anim.voice_play_animation); mAnimationDrawable = (AnimationDrawable) mOrderContentVoiceIcon.getDrawable(); mAnimationDrawable.setOneShot(false); mAnimationDrawable.start(); Message msg = new Message(); msg.what = PLAY_VOICE; msg.obj = order; handler.sendMessage(msg); } else { mPlayer.release(); mPlayer = null; mAnimationDrawable.stop(); mOrderContentVoiceIcon.setImageResource(R.drawable.d8_btn_playing_2); } } }); } mOrderStatus.setText(StringUtils.getOrderStatusName(order.order_status)); } /** * @param employee 雇员 * @param isEmployee 如果是雇员则显示雇主电话否则显示雇员电话 */ private void setEmployee(final SIMPLE_USER employee, boolean isEmployee,ORDER_INFO order) { if(!"".equals(order.accept_time)){ mAcceptOrderTime.setText(TimeUtil.timeAgo(order.accept_time)); } if(employee != null && employee.avatar != null && employee.avatar.thumb != null) { mImageLoader.displayImage(employee.avatar.thumb, mOrderEmployeeAvatar, O2OMobile.options_head); } mOrderEmployeeAvatar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(D1_OrderActivity.this, F0_ProfileActivity.class); intent.putExtra(F0_ProfileActivity.USER_ID, employee.id); startActivity(intent); } }); if(employee.nickname != null) { mOrderEmployeeName.setText(employee.nickname); } if(isEmployee) { mOrderEmployerPhone.setVisibility(View.VISIBLE); mOrderEmployerPhone.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mOrderInfoModel.publicOrder.employer.mobile_phone)); startActivity(intent); } }); } else { mOrderEmployeePhone.setVisibility(View.VISIBLE); mOrderEmployeePhone.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + employee.mobile_phone)); startActivity(intent); } }); } } /** * 游客模式,不显示订单状态 */ private void setVisitor() { mOrderEmployeeView.setVisibility(View.GONE); mOrderStatusArrow.setVisibility(View.GONE); mOrderStatusView.setEnabled(false); mOrderBtnCancel.setVisibility(View.GONE); mOrderStatusView.setBackgroundColor(Color.parseColor("#eeeeee")); mOrderStatus.setText(getString(R.string.order_have_been_received)); } /** * 判断是否是雇主/雇员 */ public boolean isEmp(SIMPLE_USER user) { if(user.id == SESSION.getInstance().uid) { return true; } else { return false; } } @Override public void onRefresh(int id) { // TODO Auto-generated method stub mOrderInfoModel.get(mOrderId); } @Override public void onLoadMore(int id) { // TODO Auto-generated method stub } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(mPlayer != null) { mPlayer.release(); mPlayer = null; mAnimationDrawable.stop(); mOrderContentVoiceIcon.setImageResource(R.drawable.d8_btn_playing_2); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (requestCode == COMMENT_SEND) { if (data != null) { ORDER_INFO order = (ORDER_INFO) data.getSerializableExtra(O2OMobileAppConst.ORDERINFO); setOrderDetailView(order); } } else { //Todo } } public void hidePayView() { AnimationUtil.backAnimationFromBottom(mOrderPlayOrderView); mOrderPlayOrderView.setVisibility(View.GONE); AnimationUtil.backAnimation(mOrderPlayButtonView); mOrderPlayButtonView.setVisibility(View.GONE); Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); mOrderPlay.setVisibility(View.GONE); mOrderBtnCancel.setVisibility(View.VISIBLE); } }; mHandler.sendEmptyMessageDelayed(0, 200); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); if (msg.what == PLAY_VOICE) { ORDER_INFO order = (ORDER_INFO) msg.obj; mPlayer = new MediaPlayer(); try { mPlayer.setDataSource(order.content.voice); mPlayer.prepare(); mPlayer.start(); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.reset(); mPlayer = null; mAnimationDrawable.stop(); mOrderContentVoiceIcon.setImageResource(R.drawable.d8_btn_playing_2); } }); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; @Override protected void onNewIntent(Intent intent) { // 如果要统计Push引起的用户使用应用情况,请实现本方法,且加上这一个语句 setIntent(intent); handleIntent(intent); } private void handleIntent(Intent intent) { mOrderId = intent.getIntExtra(ORDER_ID, 0); mOrderInfoModel.get(mOrderId); } }