package com.parttime.mine.setting; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import com.carson.constant.ConstantForSaveList; import com.carson.constant.JiaoyanUtil; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import com.parttime.base.IntentManager; import com.parttime.base.WithTitleActivity; import com.parttime.constants.SharedPreferenceConstants; import com.parttime.net.BaseRequest; import com.parttime.net.Callback; import com.parttime.net.ErrorHandler; import com.parttime.utils.SharePreferenceUtil; import com.parttime.widget.EditItem; import com.qingmu.jianzhidaren.R; import com.quark.common.Url; import com.quark.ui.widget.CustomDialog; import com.quark.utils.Util; import com.quark.volley.VolleySington; import org.w3c.dom.CDATASection; import java.util.HashMap; import java.util.Map; /** * Created by cjz on 2015/7/24. */ public class ModifyCellphoneActivity extends WithTitleActivity implements TextWatcher{ private static final int CODE_LEN = 6; @ViewInject(R.id.ei_original_phone_number) private EditItem eiOriginalNumber; @ViewInject(R.id.ei_login_pwd) private EditItem eiLoginPwd; @ViewInject(R.id.ei_new_phone_number) private EditItem eiNewNumber; @ViewInject(R.id.ei_validation_code) private EditItem eiCode; @ViewInject(R.id.btn_get_code) private Button btnGetCode; @ViewInject(R.id.btn_next) private Button btnNext; @ViewInject(R.id.tv_failed_to_get_code) private TextView tvFailedToGet; @ViewInject(R.id.iv_code_ok) private ImageView ivVerifyStatus; private CustomDialog dlg; private String oldPhoneNum; private String code; private String pwd; private String newPhoneNum; private int lastLen; private boolean everReachLen; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_modify_cellphone); ViewUtils.inject(this); super.onCreate(savedInstanceState); } @Override protected void initViews() { super.initViews(); left(TextView.class, R.string.back); center(R.string.modify_phone_number); eiCode.addTextChangeListener(this); } // private boolean validatePhoneNum(){ // phoneNum = eiOriginalNumber.getValue().trim(); // if(!Util.isMobileNO(o)){ // showToast(R.string.old_phone_number_format_wrong); // return false; // } // return true; // } @OnClick(R.id.btn_get_code) public void getCode(View v){ if(!validate()){ return; } btnGetCode.setEnabled(false); showWait(true); Map<String, String> map = new HashMap<String, String>(); map.put("telephone", newPhoneNum); new BaseRequest().request(Url.MESSAGE_MODIFY_TELEPHONE_NUM, map, VolleySington.getInstance().getRequestQueue(), new Callback() { @Override public void success(Object obj) { showWait(false); btnNext.setEnabled(true); // finish(); } @Override public void failed(Object obj) { showWait(false); btnGetCode.setEnabled(true); new ErrorHandler(ModifyCellphoneActivity.this, obj).showToast(); } }); } private boolean validate(){ oldPhoneNum = eiOriginalNumber.getValue().trim(); pwd = eiLoginPwd.getValue().trim(); newPhoneNum = eiNewNumber.getValue().trim(); if(!Util.isMobileNO(oldPhoneNum)){ showToast(R.string.old_phone_number_format_wrong); return false; } if(pwd.length() <= 0){ showToast(R.string.please_enter_login_pwd); return false; } if(!Util.isMobileNO(newPhoneNum)){ showToast(R.string.new_phone_number_format_wrong); return false; } return true; } private boolean validateCode(){ code = eiCode.getValue().trim(); if(code.length() == 0){ showToast(R.string.please_enter_validate_code); return false; } return true; } private void toLogin(){ SharePreferenceUtil spu = SharePreferenceUtil.getInstance(this); spu.removeAllKey(); spu.saveSharedPreferences(SharedPreferenceConstants.REMEMBERED_TEL, newPhoneNum); finish(); IntentManager.intentToLoginActivity(this); } @OnClick(R.id.btn_next) public void next(View v) { Map<String, String> params = new HashMap<>(); params.put("code", code); params.put("telephone", oldPhoneNum); params.put("password", JiaoyanUtil.MD5(pwd)); params.put("new_telephone", newPhoneNum); new BaseRequest().request(Url.COMPANY_MODIFY_TELEPHONE_NUM, params, VolleySington.getInstance().getRequestQueue(), new Callback() { @Override public void success(Object obj) { showWait(false); toLogin(); } @Override public void failed(Object obj) { showWait(false); new ErrorHandler(ModifyCellphoneActivity.this, obj).showToast(); } }); } @OnClick(R.id.tv_failed_to_get_code) public void failToGetCode(View v){ dlg = createDialog(getString(R.string.friendly_tips), getString(R.string.contact_customer_service_for_validaion_code), getString(R.string.contact_customer_service), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dlg.dismiss(); Intent intent = new Intent( Intent.ACTION_CALL, Uri.parse("tel:" + ConstantForSaveList.CARSON_CALL_NUMBER)); ModifyCellphoneActivity.this.startActivity(intent); } }, getString(R.string.cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (dialog != null && dlg.isShowing()) { dlg.dismiss(); } } }); dlg.show(); } @Override public void finish() { if(dlg != null && dlg.isShowing()){ dlg.dismiss(); } super.finish(); } private void verifyCode(){ Map<String, String> params = new HashMap<String, String>(); params.put("telephone", newPhoneNum); params.put("code", code); new BaseRequest().request(Url.MESSAGE_VALIDATE, params, VolleySington.getInstance().getRequestQueue(), new Callback() { @Override public void success(Object obj) { if(!everReachLen){ ivVerifyStatus.setVisibility(View.VISIBLE); everReachLen = true; } ivVerifyStatus.setSelected(true); btnNext.setEnabled(true); } @Override public void failed(Object obj) { if(!everReachLen){ ivVerifyStatus.setVisibility(View.VISIBLE); everReachLen = true; } ivVerifyStatus.setSelected(false); } }); } @Override protected ViewGroup getLeftWrapper() { return null; } @Override protected ViewGroup getRightWrapper() { return null; } @Override protected TextView getCenter() { return null; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { code = eiCode.getValue(); int length = s.length(); if(length == CODE_LEN){ if(lastLen < CODE_LEN){ verifyCode(); } }else { if(lastLen == CODE_LEN){ ivVerifyStatus.setSelected(false); btnNext.setEnabled(false); } } lastLen = length; } }