package com.xiaomi.xms.sales.ui; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.os.Handler; 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.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.LayoutParams; import com.xiaomi.xms.sales.R; import com.xiaomi.xms.sales.loader.RequestLoader; import com.xiaomi.xms.sales.loader.RequestLoader.Result; import com.xiaomi.xms.sales.model.Tags; import com.xiaomi.xms.sales.request.HostManager; import com.xiaomi.xms.sales.request.Request; import com.xiaomi.xms.sales.util.Constants; import com.xiaomi.xms.sales.util.ToastUtil; import com.xiaomi.xms.sales.xmsf.account.LoginManager; import java.util.HashMap; public class OrderEditDeliverTimeFragment extends BaseFragment { private static final int REQUEST_LOADER = 0; private RequestLoader mLoader; private RadioGroup mRadioGroup; private Button mSubmit; private String mOldDeliverTime; private String mOrderId; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.order_edit_delivertime_fragment, container, false); mRadioGroup = (RadioGroup) view.findViewById(R.id.deliver_time); mSubmit = (Button) view.findViewById(R.id.address_submit); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mSubmit.setOnClickListener(mOnSubmitListener); Bundle bundle = getArguments(); if (bundle != null) { mOldDeliverTime = bundle.getString(Constants.Intent.EXTRA_ORDER_DELIVER_TIME); mOrderId = bundle.getString(Constants.Intent.EXTRA_PAYMENT_ORDER_ID); } initButtons(); } @Override public void onResume() { super.onResume(); getActivity().setTitle(R.string.order_edit_deliver_time_title); } private static HashMap<String, String> mDeliverArr = new HashMap<String, String>(); static { mDeliverArr.put("1", "不限"); mDeliverArr.put("2", "工作日送货(适用于办公地址)"); mDeliverArr.put("3", "双休日、假日送货(适合于家庭地址)"); }; private void initButtons() { int count = mDeliverArr.size(); for (int i = 1; i <= count; i++) { String key = String.valueOf(i); RadioButton button = new RadioButton(getActivity()); button.setText(mDeliverArr.get(key)); button.setTag(key); mRadioGroup.addView(button); if (count == 1) { button.setBackgroundResource(R.drawable.radiobutton_single_bg); } else if (i == 1) { button.setBackgroundResource(R.drawable.radiobutton_up_bg); } else if (i == count) { button.setBackgroundResource(R.drawable.radiobutton_bottom_bg); } else { button.setBackgroundResource(R.drawable.radiobutton_middle_bg); } button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT)); LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); button.setLayoutParams(params); if (TextUtils.equals(mOldDeliverTime, mDeliverArr.get(key))) { button.setChecked(true); } } } private OnClickListener mOnSubmitListener = new OnClickListener() { @Override public void onClick(View arg0) { int id = mRadioGroup.getCheckedRadioButtonId(); RadioButton button = (RadioButton) mRadioGroup.findViewById(id); String best_time = (String) button.getTag(); // TODO getLoaderManager().initLoader(REQUEST_LOADER, null, mRequestCallback); if (mLoader != null) { Request request = new Request(HostManager.getEditOrder()); request.addParam(Tags.EditOrder.USER_ID, LoginManager.getInstance().getUserId()); request.addParam(Tags.EditOrder.ORDER_ID, mOrderId); request.addParam(Tags.EditOrder.TYPE, Tags.EditOrder.VALUE_TYPE_TIME); request.addParam(Tags.EditOrder.BEST_TIME, best_time); mLoader.load(REQUEST_LOADER, request); } } }; private Handler mHandler = new Handler(); private LoaderCallbacks<RequestLoader.Result> mRequestCallback = new LoaderCallbacks<RequestLoader.Result>() { @Override public void onLoaderReset(Loader<Result> loader) { } @Override public void onLoadFinished(Loader<Result> loader, Result result) { getLoaderManager().destroyLoader(REQUEST_LOADER); if (result != null) { if (Tags.isJSONResultOK(result.mData)) { ToastUtil.show(getActivity(), R.string.order_edit_ok); mHandler.post(new Runnable() { @Override public void run() { getActivity().onBackPressed(); } }); } else { ToastUtil.show(getActivity(), result.mData.optString(Tags.DESCRIPTION)); } } } @Override public Loader<Result> onCreateLoader(int type, Bundle bundle) { mLoader = new RequestLoader(getActivity()); return mLoader; } }; }