package com.andbase.login;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageButton;
import com.ab.activity.AbActivity;
import com.ab.task.AbTask;
import com.ab.task.AbTaskItem;
import com.ab.task.AbTaskListener;
import com.ab.util.AbDialogUtil;
import com.ab.util.AbStrUtil;
import com.ab.util.AbToastUtil;
import com.ab.view.titlebar.AbTitleBar;
import com.andbase.R;
import com.andbase.global.MyApplication;
import com.andbase.im.util.IMUtil;
public class RegisterActivity extends AbActivity {
private MyApplication application;
private EditText userName = null;
private EditText userPwd = null;
private EditText userPwd2 = null;
private EditText email = null;
private CheckBox checkBox = null;
private ImageButton mClear1;
private ImageButton mClear2;
private ImageButton mClear3;
private ImageButton mClear4;
private AbTitleBar mAbTitleBar = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAbContentView(R.layout.register);
application = (MyApplication)abApplication;
mAbTitleBar = this.getTitleBar();
mAbTitleBar.setTitleText(R.string.register_name);
mAbTitleBar.setLogo(R.drawable.button_selector_back);
mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
mAbTitleBar.setLogoLine(R.drawable.line);
//设置AbTitleBar在最上
this.setTitleBarOverlay(true);
userName = (EditText)this.findViewById(R.id.userName);
userPwd = (EditText)this.findViewById(R.id.userPwd);
userPwd2 = (EditText)this.findViewById(R.id.userPwd2);
email = (EditText)this.findViewById(R.id.email);
checkBox = (CheckBox) findViewById(R.id.register_check);
mClear1 = (ImageButton)findViewById(R.id.clearName);
mClear2 = (ImageButton)findViewById(R.id.clearPwd);
mClear3 = (ImageButton)findViewById(R.id.clearPwd2);
mClear4 = (ImageButton)findViewById(R.id.clearEmail);
Button agreementBtn = (Button) findViewById(R.id.agreementBtn);
userName.setText("15150509589");
userPwd.setText("123456");
userPwd2.setText("123456");
email.setText("amsoft.cn2010@163.com");
agreementBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RegisterActivity.this, AgreementActivity.class);
startActivity(intent);
}
});
Button registerBtn = (Button)this.findViewById(R.id.registerBtn);
registerBtn.setOnClickListener(new RegisterOnClickListener());
mAbTitleBar.getLogoView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
userName.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String str = userName.getText().toString().trim();
int length = str.length();
if (length > 0) {
mClear1.setVisibility(View.VISIBLE);
if(!AbStrUtil.isNumberLetter(str)){
str = str.substring(0, length-1);
userName.setText(str);
String str1 = userName.getText().toString().trim();
userName.setSelection(str1.length());
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_expr);
}
mClear1.postDelayed(new Runnable(){
@Override
public void run() {
mClear1.setVisibility(View.INVISIBLE);
}
}, 5000);
} else {
mClear1.setVisibility(View.INVISIBLE);
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
userPwd.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String str = userPwd.getText().toString().trim();
int length = str.length();
if (length > 0) {
mClear2.setVisibility(View.VISIBLE);
if(!AbStrUtil.isNumberLetter(str)){
str = str.substring(0, length-1);
userPwd.setText(str);
String str1 = userPwd.getText().toString().trim();
userPwd.setSelection(str1.length());
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_expr);
}
mClear2.postDelayed(new Runnable(){
@Override
public void run() {
mClear2.setVisibility(View.INVISIBLE);
}
}, 5000);
} else {
mClear2.setVisibility(View.INVISIBLE);
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
userPwd2.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String str = userPwd2.getText().toString().trim();
int length = str.length();
if (length > 0) {
mClear3.setVisibility(View.VISIBLE);
if(!AbStrUtil.isNumberLetter(str)){
str = str.substring(0, length-1);
userPwd2.setText(str);
String str1 = userPwd2.getText().toString().trim();
userPwd2.setSelection(str1.length());
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_expr);
}
mClear3.postDelayed(new Runnable(){
@Override
public void run() {
mClear3.setVisibility(View.INVISIBLE);
}
}, 5000);
} else {
mClear3.setVisibility(View.INVISIBLE);
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
email.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String str = email.getText().toString().trim();
int length = str.length();
if (length > 0) {
mClear4.setVisibility(View.VISIBLE);
if(AbStrUtil.isContainChinese(str)){
str = str.substring(0, length-1);
email.setText(str);
String str1 = email.getText().toString().trim();
email.setSelection(str1.length());
AbToastUtil.showToast(RegisterActivity.this,R.string.error_email_expr2);
}
mClear4.postDelayed(new Runnable(){
@Override
public void run() {
mClear4.setVisibility(View.INVISIBLE);
}
}, 5000);
} else {
mClear4.setVisibility(View.INVISIBLE);
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
mClear1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
userName.setText("");
}
});
mClear2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
userPwd.setText("");
}
});
mClear3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
userPwd2.setText("");
}
});
mClear4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
email.setText("");
}
});
initTitleRightLayout();
}
private void initTitleRightLayout(){
}
public class RegisterOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
final String mStr_name = userName.getText().toString().trim();
final String mStr_pwd = userPwd.getText().toString().trim();
final String mStr_pwd2 = userPwd2.getText().toString().trim();
final String mStr_email = email.getText().toString().trim();
if (AbStrUtil.isEmpty(mStr_name)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name);
userName.setFocusable(true);
userName.requestFocus();
return;
}
if (!AbStrUtil.isNumberLetter(mStr_name)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_expr);
userName.setFocusable(true);
userName.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_name)<3) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_length1);
userName.setFocusable(true);
userName.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_name)>20) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_name_length2);
userName.setFocusable(true);
userName.requestFocus();
return;
}
if (AbStrUtil.isEmpty(mStr_pwd)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd);
userPwd.setFocusable(true);
userPwd.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_pwd)<6) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd_length1);
userPwd.setFocusable(true);
userPwd.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_pwd)>20) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd_length2);
userPwd.setFocusable(true);
userPwd.requestFocus();
return;
}
if (AbStrUtil.isEmpty(mStr_pwd2)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd);
userPwd2.setFocusable(true);
userPwd2.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_pwd2)<6) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd_length1);
userPwd2.setFocusable(true);
userPwd2.requestFocus();
return;
}
if (AbStrUtil.strLength(mStr_pwd2)>20) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd_length2);
userPwd2.setFocusable(true);
userPwd2.requestFocus();
return;
}
if (!mStr_pwd2.equals(mStr_pwd)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_pwd_match);
userPwd2.setFocusable(true);
userPwd2.requestFocus();
return;
}
if (AbStrUtil.isEmpty(mStr_email)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_email);
email.setFocusable(true);
email.requestFocus();
return;
}
if (!AbStrUtil.isEmail(mStr_email)) {
AbToastUtil.showToast(RegisterActivity.this,R.string.error_email_expr);
email.setFocusable(true);
email.requestFocus();
return;
}
if(!checkBox.isChecked()){
AbToastUtil.showToast(RegisterActivity.this,R.string.error_agreement);
return;
}
//注册
register(mStr_name,mStr_pwd);
}
}
public void register(final String userName,final String password){
AbDialogUtil.showProgressDialog(RegisterActivity.this, 0, "正在注册...");
AbTask task = AbTask.newInstance();
//定义异步执行的对象
final AbTaskItem item = new AbTaskItem();
item.setListener(new AbTaskListener() {
@Override
public void update() {
AbDialogUtil.removeDialog(RegisterActivity.this);
AbToastUtil.showToast(RegisterActivity.this,"注册成功!");
}
@Override
public void get() {
try {
IMUtil.register(userName, password);
} catch (Exception e) {
e.printStackTrace();
}
};
});
task.execute(item);
}
}