package com.cheikh.lazywaimai.ui.activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import java.util.Date; import butterknife.Bind; import com.cheikh.lazywaimai.R; import com.cheikh.lazywaimai.base.BaseActivity; import com.cheikh.lazywaimai.base.BaseController; import com.cheikh.lazywaimai.context.AppContext; import com.cheikh.lazywaimai.controller.OrderController; import com.cheikh.lazywaimai.model.bean.Business; import com.cheikh.lazywaimai.model.bean.Order; import com.cheikh.lazywaimai.model.bean.ResponseError; import com.cheikh.lazywaimai.util.ContentView; import com.cheikh.lazywaimai.ui.Display; import com.cheikh.lazywaimai.ui.fragment.BusinessNameClickHandle; import com.cheikh.lazywaimai.util.DateUtil; import com.cheikh.lazywaimai.util.MainTab; import com.cheikh.lazywaimai.widget.MultiStateView; import com.cheikh.lazywaimai.widget.OrderReportView; import com.cheikh.lazywaimai.widget.refresh.OnRefreshListener; import com.cheikh.lazywaimai.widget.refresh.RefreshLayout; /** * author: cheikh.wang on 17/1/5 * email: wanghonghi@126.com */ @ContentView(R.layout.activity_order_detail) public class OrderDetailActivity extends BaseActivity<OrderController.OrderUiCallbacks> implements OrderController.OrderDetailUi, BusinessNameClickHandle { @Bind(R.id.multi_state_view) MultiStateView mMultiStateView; @Bind(R.id.refresh_layout) RefreshLayout mRefreshLayout; @Bind(R.id.orderReportView) OrderReportView mOrderReportView; @Bind(R.id.txt_deliver_time) TextView mDeliverTimeTxt; @Bind(R.id.txt_deliver_name) TextView mDeliverNameTxt; @Bind(R.id.txt_deliver_phone) TextView mDeliverPhoneTxt; @Bind(R.id.txt_deliver_address) TextView mDeliverAddressTxt; @Bind(R.id.txt_order_num) TextView mOrderNumTxt; @Bind(R.id.txt_remark) TextView mOrderRemarkTxt; @Bind(R.id.txt_created_at) TextView mCreateAtTxt; @Bind(R.id.txt_pay_method) TextView mPayMethodTxt; private String mOrderId; @Override protected BaseController getController() { return AppContext.getContext().getMainController().getOrderController(); } @Override protected void handleIntent(Intent intent, Display display) { mOrderId = intent.getStringExtra(Display.PARAM_ID); } @Override public String getRequestParameter() { return mOrderId; } @Override protected void initializeViews(Bundle savedInstanceState) { mRefreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { getCallbacks().refresh(); } }); mOrderReportView.setNameClickHandle(this); mMultiStateView.setState(MultiStateView.STATE_LOADING); } @Override public void showOrderInfo(Order order) { mMultiStateView.setState(MultiStateView.STATE_CONTENT); if (mRefreshLayout.isRefreshing()) { mRefreshLayout.setRefreshing(false); } // 商品信息 mOrderReportView.setupContent(order.getCartInfo()); // 配送信息 if (order.getBookedTime() == 0) { mDeliverTimeTxt.setText("立即送出"); } else { mDeliverTimeTxt.setText(DateUtil.DateToString(new Date(order.getBookedTime() * 1000), DateUtil.DateStyle.YYYY_MM_DD_HH_MM)); } mDeliverNameTxt.setText(order.getConsignee()); mDeliverPhoneTxt.setText(order.getPhone()); mDeliverAddressTxt.setText(order.getAddress()); // 订单信息 mOrderNumTxt.setText(String.valueOf(order.getOrderNum())); mOrderRemarkTxt.setText(!TextUtils.isEmpty(order.getRemark()) ? order.getRemark() : "无"); mCreateAtTxt.setText(DateUtil.DateToString(new Date(order.getCreatedAt()), DateUtil.DateStyle.YYYY_MM_DD_HH_MM)); mPayMethodTxt.setText(order.getPayMethod().getName()); } @Override public void onResponseError(ResponseError error) { mMultiStateView.setState(MultiStateView.STATE_ERROR) .setTitle(error.getMessage()) .setButton(null, new View.OnClickListener() { @Override public void onClick(View view) { mMultiStateView.setState(MultiStateView.STATE_LOADING); getCallbacks().refresh(); } }); } @Override public void onBusinessNameClick(Business business) { if (business != null) { getCallbacks().showBusiness(business); } } @Override public void onBackPressed() { Display display = getDisplay(); if (display != null) { display.showMain(MainTab.ORDERS); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Display display = getDisplay(); if (display != null) { display.showMain(MainTab.ORDERS); } return true; } return super.onOptionsItemSelected(item); } }