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;
}
}
}