package com.jiuqi.njt.register; import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean; import com.jiuqi.njt.R; import com.jiuqi.njt.data.MyApp; import com.jiuqi.njt.receiver.SMSReceiver; import com.jiuqi.njt.receiver.SMSReceiver.GetNjtSms; import com.jiuqi.njt.register.VerificationAccountTask.GetVerificationUser; import com.jiuqi.njt.util.ReturnObject; import com.jiuqi.njt.util.TitleBarUtil; import com.jiuqi.njt.util.ValidateRule; import com.jiuqi.njt.util.Validator; import com.jiuqi.util.UIUtil; import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Paint; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewStub; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * 新的用户注册页面(正常通过手机号码注册) * * @author joe * */ public class NewRegister extends Activity implements OnClickListener { private EditText phoneNumber; private EditText verificationCode; private Button sendVerificationCode; private Button nextStep; private TextView byOther; private UserBean userBean = new UserBean(); private String account; private String vercode; private MyApp application; private String TAG=this.getClass().getName(); private SMSReceiver smsReceiver; private boolean weatherSendYZMClick; @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(smsReceiver); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); doinit(); } private void doinit() { initParam(); initWidgets(); initListeners(); initUI(); } private void initParam() { application = (MyApp) getApplication(); IntentFilter filter1 = new IntentFilter(); filter1.addAction(SMSReceiver.SMSACTION); smsReceiver = new SMSReceiver(new GetSMS()); // 注册Receiver registerReceiver(smsReceiver, filter1); } private void initWidgets() { setContentView(R.layout.register_new); ViewStub rlTitleBar = (ViewStub) findViewById(R.id.titleBarStub); TitleBarUtil.createTitleBar(this, rlTitleBar, "用户注册", new OnClickListener() { @Override public void onClick(View v) { NewRegister.this.finish(); } }); phoneNumber = (EditText) findViewById(R.id.register_Edit_phoneNumber); verificationCode = (EditText) findViewById(R.id.register_Edit_VerificationCode); sendVerificationCode = (Button) findViewById(R.id.register_Btn_sendVerificationCode); nextStep = (Button) findViewById(R.id.register_Btn_nextStep); byOther = (TextView) findViewById(R.id.register_Tv_byOther); } private void initListeners() { sendVerificationCode.setOnClickListener(this); nextStep.setOnClickListener(this); byOther.setOnClickListener(this); phoneNumber.addTextChangedListener(new PhoneTextWatcher( NewRegister.this, phoneNumber, new GetUserBean())); } /** * 获取验证后的用户信息 * * @author joe * */ private class GetUserBean implements GetVerificationUser { @Override public void getUserBean(UserBean result) { userBean = result; } } /** * 获取短信内容 * * @author joe * */ private class GetSMS implements GetNjtSms { @Override public void returnSmsData(String smsData) { //清除验证码内容,并把最新的验证码设置到页面上 verificationCode.setText(""); verificationCode.setText(smsData); } } private void initUI() { byOther.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);// 下划线 byOther.getPaint().setAntiAlias(true); } /** * 验证手机号码是否符合格式 * * @return */ private boolean validatorPhone() { Validator validator = null; ReturnObject ro = null; validator = new Validator(); /** * 是不是电话号码 */ validator.addRules(ValidateRule.IS_MOBILE_NUMBER); TextView[] widgets = new TextView[] { phoneNumber }; for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { w.requestFocus(); com.jiuqi.njt.util.UIUtil.showMsg(NewRegister.this, ro.getErrorMessage()); return false; } } return true; } /** * 检查页面的组件中是不是有数据,格式是不是正确 * * @return */ private boolean checkParams() { String toastMsg = ""; TextView[] widgets = new TextView[] { phoneNumber, verificationCode }; Validator validator = null; ReturnObject ro = null; // 验证这些控件是不是都有内容了 validator = new Validator(); validator.addRules(ValidateRule.IS_NOT_EMPTY, ValidateRule.IS_REACH_MAX_LENGTH); for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { toastMsg = w.getHint().toString(); w.requestFocus(); UIUtil.showMsg(NewRegister.this, toastMsg); return false; } } // 验证这些控件是不是都是纯数字 validator.clearRules(); validator.addRules(ValidateRule.IS_DIGITS_ONLY); widgets = new TextView[] { phoneNumber, verificationCode }; for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { UIUtil.showMsg(this, ro.getErrorMessage()); toastMsg = ro.getErrorMessage(); w.requestFocus(); UIUtil.showMsg(NewRegister.this, toastMsg); return false; } } if(!weatherSendYZMClick){ UIUtil.showMsg(NewRegister.this, "请点击发送验证码按钮"); return false; } return true; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.register_Btn_sendVerificationCode: if (validatorPhone()) { // if (null == userBean) { new SendVerificationTask(NewRegister.this, phoneNumber .getText().toString(), new Counter(120000, 1000, sendVerificationCode), new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { weatherSendYZMClick = true; } }).execute(); // } else { // UIUtil.showMsg(NewRegister.this, "用户信息不是空"); // } } // Class[] parameterTypes = {String.class,String.class}; // Object[] args = {"jqcs","jqcs"}; // new TestTask(NewRegister.this, new AllTaskInterface() { // // @Override // public <T> void taskFinishReturn(T... result) { // Log.e("sssssssssssssssss", result[0].toString()); // } // }, ILoginManager.class, "login", parameterTypes, args).execute(); // // RegisterUtils.executeTask(NewRegister.this, ILoginManager.class, "login", parameterTypes, args,new AllTaskInterface() { // // @Override // public <T> void taskFinishReturn(T... result) { // } // }); break; case R.id.register_Btn_nextStep: if (checkParams()) { vercode = verificationCode.getText().toString(); account = phoneNumber.getText().toString(); new RegisterTask(NewRegister.this, userBean, account, vercode, new AllTaskInterface() { @Override public <T> void taskFinishReturn(T... result) { RegisterUtils.judgeRegisterMethods(NewRegister.this, result, userBean,false); // RegisterFinishReturnData registerFinishReturnData = (RegisterFinishReturnData) result; // // if (registerFinishReturnData.isRegisterSucess()) { // 注册成功进入下一步,否则就直接在异步类中提示失败原因 // Intent jump = new Intent(); // if (registerFinishReturnData.isClientContextSucess()) {// 注册成功,并且获取到Session就进行下一步,否则就跳转到登录页面 // // if (null == userBean) {// 说明是注册,就跳转到选择角色页面 // jump.setClass(NewRegister.this,SelectRole.class); // } else {// 说明是通过验证码登录 // if (registerFinishReturnData.isNeedPerfectInfor()) {// 如果判断用户是否完善信息成功,就进行下一步,否则跳转到登录页面 // // if ("".equals(registerFinishReturnData.getGetClientContextString())) {// 如果已经完善信息就直接进入主页 // jump.setClass(NewRegister.this,NjtMainActivity.class); // } else {// 没有完善信息就跳转到完善信息页面 // jump.setClass(NewRegister.this,PerfectInformation.class); // } // } else { // jump.setClass(NewRegister.this,LoginActivity.class); // } // } // } else { // jump.setClass(NewRegister.this,LoginActivity.class); // } // startActivity(jump); // } } }).execute(); } // startActivity(new Intent(NewRegister.this, SelectRole.class)); // finish(); break; case R.id.register_Tv_byOther: startActivity(new Intent(NewRegister.this, NewRegisterByOther.class)); finish(); break; default: break; } } }