package com.cheikh.lazywaimai.ui.activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import butterknife.Bind; import butterknife.OnClick; import com.cheikh.lazywaimai.R; import com.cheikh.lazywaimai.base.BaseActivity; import com.cheikh.lazywaimai.base.BaseController; import com.cheikh.lazywaimai.context.AppContext; import com.cheikh.lazywaimai.controller.AddressController; import com.cheikh.lazywaimai.model.bean.Address; import com.cheikh.lazywaimai.model.bean.Gender; import com.cheikh.lazywaimai.model.bean.ResponseError; import com.cheikh.lazywaimai.util.ContentView; import com.cheikh.lazywaimai.ui.Display; import com.cheikh.lazywaimai.util.ToastUtil; /** * author: cheikh.wang on 17/1/5 * email: wanghonghi@126.com */ @ContentView(R.layout.activity_address_update) public class UpdateAddressActivity extends BaseActivity<AddressController.AddressUiCallbacks> implements AddressController.UpdateAddressUi { @Bind(R.id.et_input_name) EditText mNameEdit; @Bind(R.id.rb_male) RadioButton mMaleRadioButton; @Bind(R.id.rb_female) RadioButton mFemaleRadioButton; @Bind(R.id.et_input_phone) EditText mPhoneEdit; @Bind(R.id.et_poi_address) EditText mPoiAddressEdit; @Bind(R.id.et_detail_address) EditText mDetailAddressEdit; @Bind(R.id.btn_submit) Button mModifyOrCreateBtn; private Address mOriginalAddress; @Override protected BaseController getController() { return AppContext.getContext().getMainController().getAddressController(); } @Override protected void handleIntent(Intent intent, Display display) { mOriginalAddress = intent.getParcelableExtra(Display.PARAM_OBJ); } @Override protected void initializeViews(Bundle savedInstanceState) { if (mOriginalAddress != null) { setTitle(R.string.title_change_address); mNameEdit.setText(mOriginalAddress.getName()); mMaleRadioButton.setChecked(mOriginalAddress.getGender() == Gender.MALE); mFemaleRadioButton.setChecked(mOriginalAddress.getGender() == Gender.FEMALE); mPhoneEdit.setText(mOriginalAddress.getPhone()); mPoiAddressEdit.setText(mOriginalAddress.getSummary()); mDetailAddressEdit.setText(mOriginalAddress.getDetail()); mModifyOrCreateBtn.setText(R.string.btn_confirm_update); } else { setTitle(R.string.title_create_address); mMaleRadioButton.setChecked(true); mFemaleRadioButton.setChecked(false); mModifyOrCreateBtn.setText(R.string.btn_confirm_create); } } @Override public void onResponseError(ResponseError error) { cancelLoading(); ToastUtil.showToast(error.getMessage()); } @Override public void updateFinish() { cancelLoading(); ToastUtil.showToast(mOriginalAddress != null ? R.string.toast_success_address_update : R.string.toast_success_address_create); Display display = getDisplay(); if (display != null) { display.finishActivity(); } } @OnClick(R.id.btn_submit) public void onClick(View view) { switch (view.getId()) { case R.id.btn_submit: doCreateOrChange(); break; } } private void doCreateOrChange() { // 验证名字是否为空 final String name = mNameEdit.getText().toString().trim(); if (!getCallbacks().isNameValid(name)) { ToastUtil.showToast(R.string.toast_error_empty_name); return; } // 验证电话是否为空 final String phone = mPhoneEdit.getText().toString().trim(); if (!getCallbacks().isMobileValid(phone)) { ToastUtil.showToast(R.string.toast_error_empty_phone); return; } // 验证小区/学校/大楼是否为空 final String summary = mPoiAddressEdit.getText().toString().trim(); if (!getCallbacks().isSummaryValid(summary)) { ToastUtil.showToast(R.string.toast_error_empty_address_summary); return; } // 验证详细地址是否为空 final String detail = mDetailAddressEdit.getText().toString().trim(); if (!getCallbacks().isDetailValid(detail)) { ToastUtil.showToast(R.string.toast_error_empty_address_detail); return; } // 是否是男性 boolean isMale = mMaleRadioButton.isChecked(); // 开始进行新增或者修改操作 Address address = new Address(); address.setName(name); address.setGender(isMale ? Gender.MALE : Gender.FEMALE); address.setPhone(phone); address.setSummary(summary); address.setDetail(detail); showLoading(R.string.label_being_something); if (mOriginalAddress != null) { address.setId(mOriginalAddress.getId()); getCallbacks().change(address); } else { getCallbacks().create(address); } } }