package com.cheikh.lazywaimai.ui.adapter.holder;
import android.view.View;
import android.widget.TextView;
import java.util.Date;
import butterknife.Bind;
import butterknife.OnClick;
import com.cheikh.lazywaimai.R;
import com.cheikh.lazywaimai.base.BaseViewHolder;
import com.cheikh.lazywaimai.model.bean.Business;
import com.cheikh.lazywaimai.model.bean.Order;
import com.cheikh.lazywaimai.model.bean.OrderStatus;
import com.cheikh.lazywaimai.util.DateUtil;
import com.cheikh.lazywaimai.util.StringFetcher;
import com.cheikh.lazywaimai.widget.PicassoImageView;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_BUSINESS_CLICKED;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_ORDER_CLICKED;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_PAYMENT_CLICKED;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_RECEIVED_CLICKED;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_ORDER_AGAIN_CLICKED;
import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_EVALUATE_CLICKED;
/**
* author: cheikh.wang on 16/11/23
* email: wanghonghi@126.com
*/
public class OrderItemViewHolder extends BaseViewHolder<Order> {
@Bind(R.id.view_content)
View mContentView;
@Bind(R.id.img_business_photo)
PicassoImageView businessPhotoImg;
@Bind(R.id.txt_business_name)
TextView businessNameTxt;
@Bind(R.id.txt_total_price)
TextView totalPriceTxt;
@Bind(R.id.txt_created_at)
TextView createAtTxt;
@Bind(R.id.txt_order_status)
TextView orderStatusTxt;
@Bind(R.id.btn_evaluate)
TextView evaluateTxt;
@Bind(R.id.btn_confirm_received)
TextView confirmReceivedTxt;
@Bind(R.id.btn_payment)
TextView paymentTxt;
@Bind(R.id.btn_order_again)
TextView orderAgainTxt;
public OrderItemViewHolder(View itemView) {
super(itemView);
}
public void bind(Order order) {
showOrderRelevantInfo(order);
updateButtonsByStatus(order.getStatus());
}
/**
* 显示订单相关信息
* @param order
*/
public void showOrderRelevantInfo(Order order) {
Business business = order.getBusinessInfo();
// 商家图片
businessPhotoImg.loadBusinessPhoto(business);
// 商家名称
businessNameTxt.setText(business.getName());
// 订单金额
totalPriceTxt.setText(StringFetcher.getString(R.string.label_price,
order.getTotalPrice()));
// 下单时间
createAtTxt.setText(DateUtil.DateToString(new Date(order.getCreatedAt() * 1000),
DateUtil.DateStyle.YYYY_MM_DD_HH_MM
));
// 订单状态
orderStatusTxt.setText(order.getStatus().toString());
}
/**
* 某些订单状态下需要显示操作按钮
* @param status
*/
public void updateButtonsByStatus(OrderStatus status) {
switch (status) {
case STATUS_WAIT_PAYMENT:
paymentTxt.setVisibility(View.VISIBLE);
confirmReceivedTxt.setVisibility(View.GONE);
orderAgainTxt.setVisibility(View.VISIBLE);
evaluateTxt.setVisibility(View.GONE);
break;
case STATUS_WAIT_CONFIRM:
paymentTxt.setVisibility(View.GONE);
confirmReceivedTxt.setVisibility(View.VISIBLE);
orderAgainTxt.setVisibility(View.VISIBLE);
evaluateTxt.setVisibility(View.GONE);
break;
case STATUS_FINISHED:
paymentTxt.setVisibility(View.GONE);
confirmReceivedTxt.setVisibility(View.GONE);
orderAgainTxt.setVisibility(View.VISIBLE);
evaluateTxt.setVisibility(View.VISIBLE);
break;
default:
paymentTxt.setVisibility(View.GONE);
confirmReceivedTxt.setVisibility(View.GONE);
orderAgainTxt.setVisibility(View.VISIBLE);
evaluateTxt.setVisibility(View.GONE);
break;
}
}
@OnClick({R.id.view_content, R.id.txt_business_name, R.id.btn_payment, R.id.btn_confirm_received, R.id.btn_order_again, R.id.btn_evaluate})
public void onClick(View view) {
switch (view.getId()) {
case R.id.view_content:
notifyItemAction(CLICK_TYPE_ORDER_CLICKED);
break;
case R.id.txt_business_name:
notifyItemAction(CLICK_TYPE_BUSINESS_CLICKED);
break;
case R.id.btn_payment:
notifyItemAction(CLICK_TYPE_PAYMENT_CLICKED);
break;
case R.id.btn_confirm_received:
notifyItemAction(CLICK_TYPE_RECEIVED_CLICKED);
break;
case R.id.btn_order_again:
notifyItemAction(CLICK_TYPE_ORDER_AGAIN_CLICKED);
break;
case R.id.btn_evaluate:
notifyItemAction(CLICK_TYPE_EVALUATE_CLICKED);
break;
}
}
}