package com.cheikh.lazywaimai.ui.fragment; import com.cheikh.lazywaimai.R; import com.cheikh.lazywaimai.base.BaseController; import com.cheikh.lazywaimai.base.BaseListFragment; import com.cheikh.lazywaimai.context.AppContext; import com.cheikh.lazywaimai.controller.OrderController; import com.cheikh.lazywaimai.model.bean.Order; import com.cheikh.lazywaimai.model.bean.Product; import com.cheikh.lazywaimai.model.bean.ResponseError; import com.cheikh.lazywaimai.ui.adapter.OrderListAdapter; import java.util.List; import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_ORDER_CLICKED; import static com.cheikh.lazywaimai.util.Constants.ClickType.CLICK_TYPE_BUSINESS_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; import static com.cheikh.lazywaimai.util.Constants.HttpCode.HTTP_UNAUTHORIZED; public class OrdersFragment extends BaseListFragment<Order, OrderController.OrderUiCallbacks> implements OrderController.OrderListUi { @Override protected BaseController getController() { return AppContext.getContext().getMainController().getOrderController(); } @Override public String getRequestParameter() { return null; } @Override protected String getTitle() { return getString(R.string.title_orders); } @Override protected boolean isShowBack() { return false; } @Override protected OrderListAdapter getAdapter() { return new OrderListAdapter(); } @Override protected boolean isDisplayError(ResponseError error) { if (error.getStatus() == HTTP_UNAUTHORIZED) { return true; } return super.isDisplayError(error); } @Override protected int getErrorIcon(ResponseError error) { if (error.getStatus() == HTTP_UNAUTHORIZED) { return R.drawable.ic_unauth; } return super.getErrorIcon(error); } @Override protected String getErrorTitle(ResponseError error) { if (error.getStatus() == HTTP_UNAUTHORIZED) { return error.getMessage(); } return super.getErrorTitle(error); } @Override protected String getErrorButton(ResponseError error) { if (error.getStatus() == HTTP_UNAUTHORIZED) { return getString(R.string.btn_go_login); } return super.getErrorTitle(error); } protected void onRetryClick(ResponseError error) { if (error.getStatus() == HTTP_UNAUTHORIZED) { getCallbacks().showLogin(); } super.onRetryClick(error); } @Override protected void refreshPage() { getCallbacks().refresh(); } @Override protected void nextPage() { getCallbacks().nextPage(); } @Override protected void onItemClick(int actionId, Order order) { switch (actionId) { case CLICK_TYPE_ORDER_CLICKED: getCallbacks().showOrderDetail(order); break; case CLICK_TYPE_BUSINESS_CLICKED: getCallbacks().showBusiness(order.getBusinessInfo()); break; case CLICK_TYPE_PAYMENT_CLICKED: getCallbacks().showPayment(order); break; case CLICK_TYPE_RECEIVED_CLICKED: getCallbacks().confirmReceived(); break; case CLICK_TYPE_ORDER_AGAIN_CLICKED: getCallbacks().orderAgain(order); break; case CLICK_TYPE_EVALUATE_CLICKED: getCallbacks().showEvaluate(); break; } } }