package com.xiaomi.xms.sales.ui; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.xiaomi.xms.sales.R; import com.xiaomi.xms.sales.activity.MainActivity; import com.xiaomi.xms.sales.activity.ProductDetailsActivity; import com.xiaomi.xms.sales.loader.ImageLoader; import com.xiaomi.xms.sales.loader.SaleOutRegisterLoader; import com.xiaomi.xms.sales.model.ProductInfo; import com.xiaomi.xms.sales.ui.ProductDetailsFragment.RecommendProductInfo; import com.xiaomi.xms.sales.util.Constants; import com.xiaomi.xms.sales.widget.EmptyLoadingView; import java.util.ArrayList; public class SaleOutRegisterResultFragment extends BaseFragment implements LoaderCallbacks<SaleOutRegisterLoader.Result> { private final static int REGISTER_LOADER = 1; private View mRegOkView; private LinearLayout mRecommendLayout; private EmptyLoadingView mLoadingView; private String mProductId; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.sale_out_register_result_fragment, container, false); mRegOkView = view.findViewById(R.id.reg_ok_view); mRegOkView.setVisibility(View.GONE); ((TextView) mRegOkView.findViewById(R.id.title_tv)).getPaint().setFakeBoldText(true); mRecommendLayout = (LinearLayout) view.findViewById(R.id.recommend_layout); mLoadingView = (EmptyLoadingView) view.findViewById(R.id.loading); View seeMoreBtn = view.findViewById(R.id.see_more); seeMoreBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { MainActivity.launchMain(getActivity(), MainActivity.FRAGMENT_TAG_CATEGORY); } }); Bundle bundle = getArguments(); if (bundle != null) { mProductId = bundle.getString(Constants.Intent.EXTRA_PRODUCT_ID); } return view; } private void initRecommendProductsView(ArrayList<ProductInfo> recommendProducts) { mRecommendLayout.setVisibility(View.VISIBLE); mRecommendLayout.removeAllViews(); LayoutInflater inflater = LayoutInflater.from(getActivity()); int size = recommendProducts.size(); for (int i = 0; i < size; ++i) { ProductInfo one = recommendProducts.get(i); View recView = inflater.inflate(R.layout.recommend_item, mRecommendLayout, false); RecommendProductInfo tag = new RecommendProductInfo(one, i); recView.setTag(tag); recView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { RecommendProductInfo tag = (RecommendProductInfo) v.getTag(); ProductInfo info = tag.info; // 本地应用打开 Intent intent = new Intent(); intent.setClass(getActivity(), ProductDetailsActivity.class); intent.putExtra(Constants.Intent.EXTRA_PRODUCT_ID, info.getProductId()); if (!TextUtils.isEmpty(info.getUrl())) { intent.putExtra(Constants.Intent.EXTRA_IS_MIPHONE, true); intent.putExtra(Constants.Intent.EXTRA_MIPHONE_NAME, info.getProductName()); } getActivity().startActivity(intent); } }); ImageView iv = (ImageView) recView .findViewById(R.id.recommend_item_image); TextView tv = (TextView) recView .findViewById(R.id.recommend_item_price); ImageLoader.getInstance().loadImage(iv, one.getImage(), R.drawable.default_pic_large); tv.setText(getString(R.string.rmb_identification, one.getProductPrice())); mRecommendLayout.addView(recView); } } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getLoaderManager().initLoader(REGISTER_LOADER, null, this); } @Override public Loader<SaleOutRegisterLoader.Result> onCreateLoader(int id, Bundle bundle) { if (REGISTER_LOADER == id) { mLoader = new SaleOutRegisterLoader(getActivity(), mProductId); mLoader.setProgressNotifiable(mLoadingView); return (Loader<SaleOutRegisterLoader.Result>) mLoader; } return null; } @Override public void onLoadFinished(Loader<SaleOutRegisterLoader.Result> loader, SaleOutRegisterLoader.Result result) { if (result.isSuc) { mRegOkView.setVisibility(View.VISIBLE); if (!result.recommandProducts.isEmpty()) { initRecommendProductsView(result.recommandProducts); } } } @Override public void onLoaderReset(Loader<SaleOutRegisterLoader.Result> loader) { } }