package com.cheikh.lazywaimai.widget; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; import com.cheikh.lazywaimai.R; import com.cheikh.lazywaimai.model.bean.Business; import com.cheikh.lazywaimai.model.bean.CartInfo; import com.cheikh.lazywaimai.model.bean.ShoppingEntity; import com.cheikh.lazywaimai.ui.adapter.DiscountInfoListAdapter; import com.cheikh.lazywaimai.ui.adapter.ExtraFeeListAdapter; import com.cheikh.lazywaimai.ui.adapter.ShoppingProductListAdapter; import com.cheikh.lazywaimai.ui.fragment.BusinessNameClickHandle; import com.cheikh.lazywaimai.util.CollectionUtil; import com.cheikh.lazywaimai.util.StringFetcher; public class OrderReportView extends FrameLayout { @Bind(R.id.txt_name) TextView mBusinessNameTxt; @Bind(R.id.img_arrow) ImageView mArrowImg; @Bind(R.id.divider) View mShoppingProductDivider; @Bind(R.id.recycler_view) RecyclerView mShoppingProductRecyclerView; @Bind(R.id.divider2) View mExtraFeeDivider; @Bind(R.id.recycler_view2) RecyclerView mExtraFeeRecyclerView; @Bind(R.id.divider3) View mDiscountListDivider; @Bind(R.id.recycler_view3) RecyclerView mDiscountInfoRecyclerView; @Bind(R.id.txt_origin_price) TextView mOriginPriceTxt; @Bind(R.id.txt_discount_price) TextView mDiscountPriceTxt; @Bind(R.id.txt_total_price) TextView mTotalPriceTxt; private ShoppingProductListAdapter mShoppingProductAdapter; private ExtraFeeListAdapter mExtraFeeListAdapter; private DiscountInfoListAdapter mDiscountInfoAdapter; private BusinessNameClickHandle mNameClickHandle; public OrderReportView(Context context) { this(context, null); } public OrderReportView(Context context, AttributeSet attrs) { super(context, attrs); View view = LayoutInflater.from(context).inflate(R.layout.layout_order_report_view, this); ButterKnife.bind(view); initViews(); } private void initViews() { mShoppingProductAdapter = new ShoppingProductListAdapter(); mShoppingProductRecyclerView.setAdapter(mShoppingProductAdapter); mShoppingProductRecyclerView.setLayoutManager(new FixedLinearLayoutManager(getContext())); mExtraFeeListAdapter = new ExtraFeeListAdapter(); mExtraFeeRecyclerView.setAdapter(mExtraFeeListAdapter); mExtraFeeRecyclerView.setLayoutManager(new FixedLinearLayoutManager(getContext())); mDiscountInfoAdapter = new DiscountInfoListAdapter(); mDiscountInfoRecyclerView.setAdapter(mDiscountInfoAdapter); mDiscountInfoRecyclerView.setLayoutManager(new FixedLinearLayoutManager(getContext())); } public void setupContent(CartInfo cartInfo) { // 价格 mOriginPriceTxt.setText(StringFetcher.getString(R.string.label_price, cartInfo.getOriginPrice())); mDiscountPriceTxt.setText(StringFetcher.getString(R.string.label_price, cartInfo.getDiscountPrice())); mTotalPriceTxt.setText(StringFetcher.getString(R.string.label_price, cartInfo.getTotalPrice())); // 商家名称 final Business businessInfo = cartInfo.getBusiness(); if (businessInfo != null) { mBusinessNameTxt.setText(businessInfo.getName()); mBusinessNameTxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mNameClickHandle != null) { mNameClickHandle.onBusinessNameClick(businessInfo); } } }); } // 选购的商品 List<ShoppingEntity> shoppingProducts = cartInfo.getShoppingProducts(); mShoppingProductAdapter.setItems(shoppingProducts); mShoppingProductDivider.setVisibility(CollectionUtil.isEmpty(shoppingProducts) ? View.GONE : View.VISIBLE); // 商家额外费用 List<CartInfo.ExtraFee> extraFees = cartInfo.getExtraFees(); mExtraFeeListAdapter.setItems(extraFees); mExtraFeeDivider.setVisibility(CollectionUtil.isEmpty(extraFees) ? View.GONE : View.VISIBLE); // 商家活动优惠 List<CartInfo.DiscountInfo> discountInfos = cartInfo.getDiscountInfos(); mDiscountInfoAdapter.setItems(discountInfos); mDiscountListDivider.setVisibility(CollectionUtil.isEmpty(discountInfos) ? View.GONE : View.VISIBLE); } public void setNameClickHandle(BusinessNameClickHandle nameClickHandle) { if (nameClickHandle != null) { mNameClickHandle = nameClickHandle; mArrowImg.setVisibility(View.VISIBLE); } } }